/** Shopify CDN: Minification failed

Line 2642:0 Unexpected "}"

**/
/**** 
 * general
 * 
 */
[color-scheme] {
    background: var(--bg);
    background-attachment: fixed;
    color: var(--color);
}

.is-link { --buttonPadding: var(--space-2) var(--space-0) }

/* Details */
details-content { display: block }

details.closex summary { 
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style: none;
    cursor: pointer;
    position: relative;
    padding-block: var(--space-1)
}

details.closex > summary::-webkit-details-marker { display: none }

input:where([type="checkbox"],[type="radio"]):not([type="switch"]) {
    --inputHeight: 1.2rem;
    --inputActive: currentColor;
    --bc: currentColor;
    --br: var(--globalRadiusFull) !important;

    vertical-align: middle;
    margin-block: auto;
}

input:where([type="checkbox"],[type="radio"]):not([type="switch"]):after { content: ''; display: none }

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    display: none;
    -webkit-appearance: none;
    appearance: none;
}

input[type="number"]{ -moz-appearance: textfield; appearance: textfield }

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

label, legend { --labelColor: var(--colorFaded); --labelWeight: 400; margin: 0; padding: 0; }
table { --tableBorder: none }

ul { list-style-type: "\00B7\00a0" }

s { color: var(--colorFaded) }

/* Scroll bars */
* { scrollbar-color: rgb(var(--colorRGB) / .4) rgb(0 0 0 / 0); scrollbar-width: thin }

price-unit { color: var(--labelTitleColor, var(--colorFaded)); font-size: var(--type-2) }

/*** Image lazy preload */
component-loader, media-loader, picture { display: block }

html.js media-loader:has(img:not([src*=".png"]):not([src*=".gif"])) picture {
    transition: background 500ms ease-in-out;
    transition-delay: 250ms;
}
html.js media-loader[ready] picture { background-color: transparent!important }

html.js media-loader img { opacity: 0; transition: opacity 500ms ease-in-out }
html.js media-loader[ready] img { opacity: 1 }

html.js media-loader:has(:not(.noRadius)) { border-radius: var(--globalRadiusImg, 0px) }
:is(img,video,iframe):not(.noRadius) { border-radius: var(--globalRadiusImg, 0px) }

.mixBlend { --color: #FFF; --linkColor: #FFF; --linkHover: #FFF; --hColor: #FFF; color: var(--color)!important; mix-blend-mode: difference }

/* RTE */
.rte { --tablePadding: 0 var(--space-2); --hLine: 1.2; --hMargin: 0 0 .3em; --hSpace: 0px }
.rte :is(h1,h2,h3,h4,h5,h6) { word-break: break-all }
.rte :is(ol,ul,li,p,strong,blockquote) { all: revert }
.rte table { display: block; margin: 0; padding: 0 }
.rte > ul, .rte ul li > ul, 
.rte ol, .rte ol li > ol { padding-inline: var(--space-4) }
.rte p:empty { display: none }
.rte p:first-of-type { margin-block-start: 0 }
.rte p:last-of-type { margin-block-end: 0 }
.rte a { text-decoration: underline; }
.rte iframe { max-width: 100%; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: var(--space-5) }

:where(button,.button).is-custom { --buttonPadding: var(--space-2); --buttonMargin: 0; --buttonGap: var(--space-1) } 


.custom.toggle-token {
    --tokenBg: transparent;
    --tokenBgHover: transparent;
    --tokenBgActive: transparent;
    --tokenBorderColor: transparent;
    --tokenBorderHover: transparent;
    --tokenBorderActive: transparent;
    --tokenColor: currentColor;
    --tokenColorHover: currentColor;
    --tokenColorActive: currentColor;
    --tokenDecorationHover: underline;
    --tokenDecorationActive: underline;
    --tokenPadding: var(--space-1);
    --tokenMargin: 0;
    --gap: var(--space-1) var(--space-3);
}

/* Main */
body { --headSpace: var(--headerGroupHeight); background-attachment: fixed }
body:has(coretex-header:where([mode="initial"],[mode="absolute"],[location="center"])) { --headSpace: 0px }

.grecaptcha-badge, div#shop-hcaptcha-badge-container { display: none!important }
.captcha-disclaimer { font-size: 70%; color: var(--colorFaded) }

/* iOS zoom fix */
@media screen and (max-width: 777px) {
    html.ios :is(textarea,input):focus-visible { font-size: 16px }
}

coretex-fetch { display: block; position: relative }

coretex-fetch.is-loading:before {
    content: attr(coretex-loading);
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    backdrop-filter: blur(5px);
    z-index: 9;
}

/** Add to cart button (Product page + Product card) */
ajax-cart-product-form[processing] .add-2-cart > .cta { color: transparent }
.add-2-cart.fullwidth .loading__spinner { justify-self: var(--buttonAlign) }
ajax-cart-product-form[processing] .add-2-cart > .loading__spinner { display: block!important } 

[data-ajax-cart-errors] { color: var(--red) }
[data-ajax-cart-errors]:empty { display: none }
[data-ajax-cart-errors="form"]:not(:empty) { display: block; padding-block: var(--padding) }

/* Mask */
.mask { -webkit-mask-image: var(--maskImage); mask-image: var(--maskImage) }
@media (max-width: 777px) { .mask-s { -webkit-mask-image: var(--maskImage); mask-image: var(--maskImage) } }
@media (min-width: 778px) { .mask-l { -webkit-mask-image: var(--maskImage); mask-image: var(--maskImage) } }

[class*="mask"].inline-start { --maskImage: linear-gradient(to left, #000000 var(--maskStart, 70%), transparent var(--maskEnd, 100%)) }
[class*="mask"].inline-end { --maskImage: linear-gradient(to right, #000000 var(--maskStart, 70%), transparent var(--maskEnd, 100%)) }
[class*="mask"].inline-both { --maskImage: linear-gradient(90deg, transparent, #000000 var(--maskStart, 10%), #000000 var(--maskCenter, 90%), transparent var(--maskEnd, 100%)) }
[class*="mask"].block-start { --maskImage: linear-gradient(to top, #000000 var(--maskStart, 80%), transparent var(--maskEnd, 100%)) }
[class*="mask"].block-end { --maskImage: linear-gradient(to bottom, #000000 var(--maskStart, 80%), transparent var(--maskEnd, 100%)) }

[class*="mask"].blur {
    -webkit-backdrop-filter: blur(var(--maskBlur, 10px));
    backdrop-filter: blur(var(--maskBlur, 10px));
}

.payment-icons i svg > path[opacity] { opacity: 0!important }

/* Social networks links */
.socialNets { 
    --buttonWeight: 400; 
    --iconSize: inherit;

    &[data-icons="icons"] span { display: none }
    &[data-icons="text"] i { display: none }
}

/** 
    Utilities */
.title { word-wrap: break-word; word-break: break-word }

.labeler {
    text-transform: uppercase;

    &:before { content: '('; padding-inline-end: var(--space-1) }
    &:after { content: ')'; padding-inline-start: var(--space-1) }
}

/* General page, Blog post */
.general-page { --gap: var(--layoutInline) }
.general-page .container { padding: var(--layoutInline) }

:where(.general-page,.article) .content.rte > .full-width, .general-page .content.rte > .full-width :where(img,video,iframe) { width: 100% }

@media (min-width: 777px) { .general-page x-flex[direction="row"] .title { max-width: 36rem } }
@media (max-width: 777px) { .general-page { --charWidth: 100% !important } }

/* Switch between hide/show */
.onHover {
    .on { opacity: 1 }
    .off { opacity: 0 }

    &:is(:hover,:focus,:focus-visible,:focus-within) {
        .on { opacity: 0 }
        .off { opacity: 1 }
    }
}

/* [A] Auto, activates hover on devices that have hover state */
@media (hover: hover) {
    .onHover-a {
        .on { opacity: 1 }
        .off { opacity: 0 }

        &:is(:hover,:focus,:focus-visible,:focus-within) {
            .on { opacity: 0 }
            .off { opacity: 1 }
        }
    }
}

/* [S] activates hover on Mobile */
@media (width <= 777px) {
    .onHover-s {
        .on { opacity: 1 }
        .off { opacity: 0 }
    
        &:is(:hover,:focus,:focus-visible,:focus-within) {
            .on { opacity: 0 }
            .off { opacity: 1 }
        }
    }
}

/* [M] activates hover on tablet and desktop */
@media (width >= 778px) {
    .onHover-m {
        .on { opacity: 1 }
        .off { opacity: 0 }

        &:is(:hover,:focus,:focus-visible,:focus-within) {
            .on { opacity: 0 }
            .off { opacity: 1 }
        }
    }
}
/* [M] mobile fallback: hide secondary image when hover is desktop-only */
@media (max-width: 777px) {
    .onHover-m {
        .on { opacity: 1 }
        .off { opacity: 0 }
    }
}

.loading__spinner {
    width: 4rem;
    height: var(--fontSize);
    background: radial-gradient(circle closest-side, currentColor 90%, transparent) 0% 50%, 
                radial-gradient(circle closest-side, currentColor 90%, transparent) 50% 50%, 
                radial-gradient(circle closest-side, currentColor 90%, transparent) 100% 50%;
    background-size: calc(100% / 3) .6em;
    background-repeat: no-repeat;
    animation: loading-dots 1s infinite linear
}

@keyframes loading-dots {
   20% { background-position: 0% 0%, 50% 50%, 100% 50% } 40% { background-position: 0% 100%, 50% 0%, 100% 50% } 
   60% { background-position: 0% 50%, 50% 100%, 100% 0% } 80% { background-position: 0% 50%, 50% 50%, 100% 100% }
}

/* Accordion */
coretex-accordion { display: block; margin-block: var(--blockMargin) }
coretex-accordion:has(+ coretex-accordion) { margin-block: 0 }
coretex-accordion:has(+ coretex-accordion) details summary { padding-block-end: var(--space-3) }
coretex-accordion:not(:has(+ coretex-accordion)), coretex-accordion + coretex-accordion { margin-block-start: 0 }

coretex-accordion details-content { position: relative; margin-block: var(--space-1) var(--space-5) }
coretex-accordion details summary { justify-content: start; color: var(--color) }
coretex-accordion details[open] summary { text-decoration: underline; color: var(--color); position: sticky; top: 0 }
coretex-accordion details summary:is(:hover,:focus-visible), coretex-accordion details[open] summary { padding-inline-start: 1rem; padding-block: var(--space-1) }

coretex-accordion details summary:is(:hover,:focus-visible):before,
coretex-accordion details[open] summary:before {
    content: var(--hoverSymbol);
    position: absolute;
    inset-inline-start: 0;
    inset-block-start: 0.15em;
    font-family: var(--fontFallback);
    font-size: var(--type-5);
}

coretex-accordion details-content::before {
    content: var(--openSymbol);
    position: absolute;
    inset-block-start: -2px;
    inset-inline-start: 1px;
    display: inline;
}

coretex-accordion details-content .rte { margin-inline-start: var(--space-4) }

/* [C] Product card */
.products { --gap: var(--prodGap) }
@media (max-width: 777px) { .products { --gap: var(--prodGapMob) } }
.products :is([columns="10"],[columns="fit"]) .meta { display: none }
product-card { --hMargin: 0; --gap: var(--space-3); position: relative }
product-card[in-stock="false"][fade="true"] { opacity: 0.35 }
product-card[medialess] .meta { margin-block-start: auto; width: 100% }
[scroll-area] li:has(product-card[medialess]) { align-self: center }
product-card[clip-meta] :is(.vendor h3, .title a, .subtitle) { display: inline-block; text-overflow: ellipsis; max-width: 100cqi; white-space: nowrap; overflow: clip }
product-card[clip-meta][compact="true"] :is(.vendor h3, .title a, .subtitle) { max-width: 75cqi }

product-card .meta { --gap: var(--space-1); container: prod-card / inline-size }
product-card:not([compact="true"]) .meta > * { display: block; width: 100% }
product-card .meta > *:empty { display: none }
product-card .meta .titles :is(.title,.subtitle,.vendor) { --hSize: var(--fontSize); --hWeight: var(--fontWeight); --hFontFamily: var(--fontFamily); }
product-card .meta .titles .subtitle { color: var(--colorFaded) }
product-card .meta .titles .vendor { display: block }
product-card:not([compact="true"]) .meta :is(.prices,.badges) { padding-block-start: var(--space-1) }
product-card:not([medialess])[compact="true"] .meta .badges { display: none }
product-card .meta x-cell:empty { display: none }

product-card .meta .sizes { overflow: hidden }
product-card .meta .sizes-list { --gap: 0 var(--space-2) }
product-card .meta .sizes-list li { cursor: default }
product-card .meta .sizes-list li s { opacity: 0.5  }

product-card .meta coretex-price { display: block }
product-card .meta.text-start [x-flex] { justify-content: start }
product-card .meta.text-center [x-flex] { justify-content: center }
product-card .meta.text-end [x-flex] { justify-content: end }

product-card[compact="true"] {
    :where(button,.button).is-custom { --buttonPadding: 0px 0px 0px var(--space-2) }
    .meta.meta [x-flex] { justify-content: end }

    /*** Overlay meta on media */
    &[overlay="true"] .meta {
        position: absolute;
        inset-inline: 0px;
        inset-block-end: 0px;
        z-index: 1;
        padding: var(--space-2) var(--padding);
    } 
}

product-card .media :is(img,video,iframe) { user-select: none }

product-card[crop="true"] .media :is(img,video,iframe) {
    aspect-ratio: var(--prodCardRatio, 1/1);
    object-fit: var(--prodCardFit, cover);
    object-position: var(--prodCardPosition, center);
    height: var(--prodCardHeight, initial);
}

@media (min-width: 777px) {
    product-card[stealth="true"]:not([medialess]) .meta { opacity: 0 }
    :is(.products,component-loader):not([columns="10"],[columns="fit"]) product-card[stealth="true"]:is(:hover,:focus-visible,:focus-within) .meta { opacity: 1 }
}

product-card .quick-buyer[id*="quickBuy-"] { display: none }
product-card:has(input[id*="quickToggle-"]:checked) [id^="quickBuy-"] { display: block }

product-card .quick-buyer :is(button.is-custom,select) {
    --inputBorderColor: none;
    --inputBorderHover: none;
    --inputBorderActive: none;
    --inputBg: transparent;
    --inputBgHover: transparent;
    --inputBgActive: transparent;
    --inputColor: currentColor;

    padding: var(--space-2) 0;
    width: 100%;
    text-align: inherit;
}

product-card .quick-buyer button { 
    --buttonPadding: var(--space-2) var(--space-3); 
    text-align: inherit;
    width: 100%; 
}

product-card x-select[data-pop] {
    border-radius: var(--buttonRadius);
    background: var(--buttonBg);

    x-cell { background: var(--buttonBg); }
    select { padding: var(--space-2) var(--space-3)!important; }
}

product-card .quick-buyer button.is-custom > .cta { text-decoration: underline }

product-card:has(input[id*="quickToggle-"]:checked) .quickBuyPrice { display: none!important }
product-card .quickBuyPrice label { all: unset; cursor: pointer }

product-card .quickBuyToggle:has(input:focus-visible) {
    --a11yOutline: 2px var(--a11yStyle) var(--a11yColor); outline: var(--a11yOutline); box-shadow: var(--a11yStyle) var(--a11yColor)
}

/* Onboarding **/
product-card.onboarding :where(.media,.svgph) { width: 100% }

x-select { display: block; position: relative }
x-select > select { width: 100% }

x-select > x-cell {
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 0;
    padding: var(--space-2);
    background: var(--bgColor);
    pointer-events: none;
    border-radius: var(--inputRadius);
}

/* [C] Rating coretex-rating component */
coretex-rating {
    display: block;

    rating-bar {
        --fontSpace: 0.4;
        --fontSize: 2;
        --percent: calc((var(--rating) / var(--rating-max) + var(--rating-decimal) * var(--fontSize) / (var(--rating-max) * (var(--fontSpace) + var(--fontSize)))) * 100%);

        display: inline-block;
        vertical-align: text-top;
        -webkit-user-select: none;
                user-select: none;
        font-family: monospace;
        letter-spacing: calc(var(--fontSpace) * 1rem);
        background-image: linear-gradient(90deg, var(--ratingsColor, currentColor) var(--percent), color-mix(in oklch, var(--ratingsColor, currentColor), transparent 55%) var(--percent));
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        
    }
}

/* [C] Coretex Hover display */
coretex-hover {
    display: block;

    [hover-spotlight] {
        min-height: 20px;
        opacity: 0;
        filter: blur(5px);
        transform: translateY(30%);
        transition: all 500ms var(--easeOutQuint);
        transform-origin: bottom;
    }
    
    [hover-spotlight].active { opacity: 1; transform: none; filter: none }

    /* .spotlight-item { }
    .spotlight-value { } */

    .spotlight-key { text-transform: capitalize; font-weight: 700 }
    &[display-key="false"] .spotlight-key { display: none }
}

/* Fieldset */
fieldset { padding: 0; margin: 0; border: none }
fieldset button { margin-inline: 0 }

/* Float inputs label */
x-field { 
    display: grid;
    align-items: center;
    position: relative; 
    isolation: isolate; 
    max-width: 100%;
    margin: var(--inputMargin) 0;
    padding: 0!important;
} 

x-field > input {
    --inputMargin: 0;
    --a11yOffset: calc(var(--inputBorderWidth) * 2);
    padding: calc(var(--inputPadding) * 1.5) 0px calc(var(--inputPadding) / 1.5) calc(var(--inputPadding) + var(--globalRadius) / 9) !important;
}

x-field > input::placeholder { color: transparent!important; user-select: none; }

x-field > input::-webkit-contacts-auto-fill-button {
    position: absolute;
    visibility: hidden;
    pointer-events: none;
    user-select: none;
}

x-field > label {
    position: absolute;
    inset-block-start: calc(8% + var(--inputPadding));
    margin: 0;
    padding-inline-start: calc(var(--inputPadding) + var(--globalRadius) / 5);
    font-weight: normal;
    line-height: 1;
    color: var(--inputPlaceholderColor);
    pointer-events: none;
    user-select: none;
    transition: all 150ms var(--easeOutQuad);
    transform-origin: left center;
}

x-field > input:focus-visible + label,
x-field > input:not(:placeholder-shown) + label {
    inset-block-start: calc(var(--inputPadding) / 2);
    color: var(--colorFaded);
    scale: 0.82;
    z-index: 1;
}

select { margin-inline: 0 }

/** 
    Pages */

/* General page */
.pageTitle {
    --hMargin: var(--space-2) 0 var(--space-8);
    display: block;
    width: var(--layoutMaxWidth);
    margin-inline: var(--layoutCenter, 0);
}

/* Collection list page */
.collections-list .description { max-width: 60ch }
.collections-list #ajaxContainer { gap: var(--space-11) }

/*** 
    Header 
***/

/* Sticky header + Header overlay */
#headerGroup {
    anchor-name: --headerGroup-anchor;
    position: var(--headerPosition, initial);
    inset-block-start: 0;
    inset-inline: 0; 
    z-index: 99;
}

#headerGroup coretex-header[color-scheme] { background: var(--headerBg, transparent) }
#headerGroup nav.breadcrumb { background: var(--headerBg, transparent) }

#headerGroup [page-current] { text-decoration: underline }

/* Invert header contents */
#headerGroup:has(coretex-header[mix-blend="true"]):not(:has(details.lv1[open], #menuDrawerBox[open])) { 
    --color: #FFF;
    --linkColor: #FFF;
    --linkHover: #FFF;
    --hColor: #FFF;
    mix-blend-mode: exclusion; 
    color: var(--color)!important;

    coretex-ticker { 
        --color: #FFF; --linkColor: #FFF; --linkHover: #FFF;
        background: transparent; color: white; border-color: transparent; mix-blend-mode: normal;
        
        button.is-custom { --buttonBg: transparent; --buttonColor: #FFF }
    }

    .logo { filter: grayscale(1) invert(1); }
}

#headerGroup:has(coretex-header[dropdown-bg="true"][mix-blend="true"]) details.lv1[open] summary { background: var(--headerBg) }

/* Minimal mode */
@media (min-width: 777px) {
    coretex-header[stealth="true"] {
        .header > *:not(.logo) { opacity: 0; transition: opacity var(--globalAnimeTime) var(--globalAnimeEase) }

        &:is(:hover,:focus-visible,:focus-within) {
            .header > * { opacity: 1 }
        }
    }
}

coretex-header {
    --buttonWeight: 400;
    --linkColor: var(--color);
    --linkHover: var(--color);
    --buttonColor: var(--color);
    --buttonColorHover: var(--color);

    anchor-name: --coretexHeader-anchor;

    display: block;
    background: var(--bg);
    background-attachment: fixed;
    color: var(--color);
    border-block: var(--globalBorderWidth) solid var(--border);
    padding-inline: var(--layoutInline);
}

coretex-header :where(.menuContent) { max-width: 100% }

/* Location of the header */
coretex-header:is([location="center"]) { position: absolute!important; inset-inline: 0px; inset-block: 50vh; height: fit-content; }

/* Icons */
coretex-header[content-type="icons"] .txtState {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

coretex-header[content-type="text"] :where(.tools,.mobileTrigger) i { display: none }
coretex-header .noHide > i { display: block }


/* Logo */
coretex-header .header .logo { padding-block: var(--space-2) }
coretex-header .header .logo:first-child { padding-inline-end: var(--padding) }
coretex-header .header .logo:not(:first-child) { padding-inline: var(--space-2) }
coretex-header .header .logo img { height: var(--logoImageSize); width: fit-content }
coretex-header .header .logo .has-text-logo { padding-block: var(--space-2) }
coretex-header .header .logo .text-logo { 
    font-size: var(--logoSize); 
    font-weight: var(--logoFontWeight); 
    font-style: var(--logoFontStyle); 
    font-family: var(--logoFontFamily); 
    line-height: 1;
    word-break: break-word;
}

@media (max-width: 777px) { coretex-header .logo { padding: var(--space-2) } }

/* Cart */
html.js-ajax-cart-empty coretex-header cart-count { display: none }

coretex-header :where(button,.button).is-custom {
    --buttonBg: transparent;
    --buttonBgHover: transparent;
    --buttonMargin: 0;
    --buttonPadding: var(--space-2);
    --buttonGap: var(--space-1);
}

coretex-header :is(button.cartBubble) { gap: var(--space-1) }

cart-footer .cart-notes details[open] i { transform: rotate(180deg) }


/* Localization */
coretex-header .localization {
    container: localization / inline-size;
    width: 100%;
}

/* Hide the country name if the container width is too small. */
@container localization (width < 200px) {
    coretex-header .localization country-name { display: none }
}

/* localization icons */
coretex-header .crl i { padding-inline-end: var(--space-1) }
coretex-header[content-type="icons"] .crl span:not(.noHide) { display: none }

/* Menus */
coretex-header details.closex summary.button.is-custom { padding-block: var(--buttonPadding) }
/* === [ CORETEX FYI ] === menus: drop & mega are only needed on desktops */
@media (min-width: 778px) {
/** General styles */
    coretex-header { 
        --gap: 0;
        --hoverSymbolInline: -0.4em;
    }

    coretex-header:not([coretex-menu="drawer"]) .mobileTrigger { display: none }
    coretex-header:not([coretex-menu="drawer"]) details[open] > summary i { transform: rotate(180deg) }
    coretex-header[coretex-menu] drawer-footer { display: none }
    coretex-header .bdotfx { display: flex; place-items: center }

/** Menu: dropdown (default) */
    coretex-header[coretex-menu="drop"] ul:where([data-level="2"],[data-level="3"]) {
        display: flex;
        flex-direction: column;
        position: relative;
        margin: 0px;
        color: var(--color);
        padding: var(--padding);
    }

    coretex-header[coretex-menu="drop"] ul[data-level="2"] { 
        position: absolute; 
        z-index: 1;
        max-height: 85dvh;
        overflow-y: auto;
        border-radius: var(--globalRadiusSafe);
        margin-block-start: var(--space-2);
    }

    coretex-header[coretex-menu="drop"][dropdown-bg="true"] {
        ul[data-level="2"] {
            background: var(--bg);
            background-attachment: fixed;
            border: var(--globalBorderWidth) solid var(--border);
        }

        details[open].lv1 > summary {
            background: var(--bgColor);
            background-attachment: fixed;
        }
    }

    coretex-header[coretex-menu="drop"] ul[data-level="3"] {
        padding-block-start: 0;
        padding-inline-start: var(--margin);
    }

    coretex-header[coretex-menu="drop"] ul[data-level="3"]:before { 
        content: var(--openSymbol);
        display: inline;
        position: absolute;
        inset-block-start: 0.3em;
        inset-inline-start: -0.2em;
    }

    coretex-header[coretex-menu="drop"] ul:where([data-level="2"],[data-level="3"]) li.bdotfx:is(:hover,:focus-visible,:focus-within) > a:before,
    coretex-header[coretex-menu="drop"] ul:where([data-level="2"],[data-level="3"]) li.bdotfx:is(:hover,:focus-visible,:focus-within) > details > summary:before,
    coretex-header[coretex-menu="drop"] ul:where([data-level="2"],[data-level="3"]) li.bdotfx details[open] > summary:before { 
        content: var(--hoverSymbol); position: absolute; inset-inline-start: var(--hoverSymbolInline); 
    }

/** Menu: mega */
    coretex-header[coretex-menu="mega"]  { position: relative }

    coretex-header[coretex-menu="mega"] ul[data-level="2"] {
        position: absolute;
        inset-inline: 0;
        inset-block-start: calc(var(--headerHeight, 102px) - 2px); 
        z-index: 100;
        margin: 0;
        margin-block-start: calc(-1 * var(--globalBorderWidth));
        border-block: var(--globalBorderWidth) solid var(--border);
        /* margin-block-start: calc(var(--space-4) * 1.4); */
        padding: var(--space-5) var(--layoutInline) var(--padding);
        max-height: 80vh;
        overflow: auto;
        background: var(--headerBg);
        background-attachment: fixed;
        /* This will be ignored in Chrome (bug #356891480) */
        -webkit-backdrop-filter: var(--overlayBlur); 
                backdrop-filter: var(--overlayBlur);
    }

    html.chrome coretex-header[coretex-menu="mega"] details-menu > ul[data-level="2"] { background: var(--bg) } /* Since the backdrop-filter is ignored in Chrome, we need to set a solid background color */
    /* coretex-header[coretex-menu="mega"] details-menu > ul[data-level="2"]:before {
        content: var(--openSymbol);
        margin-block-start: 3px;
        line-height: 1lh;
    }

    coretex-header[coretex-menu="mega"] details-menu > ul[data-level="2"]:not(:has([data-level="3"])):before {
        position: absolute;
        inset-inline-start: calc(var(--layoutInline) - 0.5vw);
    } */

    coretex-header[coretex-menu="mega"] ul[data-level="2"] summary { pointer-events: none; color: var(--colorFaded); margin-block-end: var(--space-2) }
    coretex-header[coretex-menu="mega"] ul[data-level="2"] summary i { display: none }

    coretex-header[coretex-menu="mega"] ul[data-level="2"] > li { width: max(150px, 100%); height: fit-content }
    coretex-header[coretex-menu="mega"] nav.firstElevated ul[data-level="2"]:has(ul[data-level="3"]) > li:first-of-type a { font-size: var(--type-6); line-height: calc(2px + 1ex + 2px); font-weight: 600; letter-spacing: .009em }

    coretex-header[coretex-menu="mega"] ul[data-level="3"] { margin: 0; padding: 0 }
    coretex-header[coretex-menu="mega"] ul[data-level="3"] > li { max-width: 99% }

    coretex-header[coretex-menu="mega"] ul:where([data-level="2"],[data-level="3"]) li.bdotfx:is(:hover,:focus-visible) > a:before { content: var(--hoverSymbol); position: absolute; inset-inline-start: var(--hoverSymbolInline) }

    /* in case there are no level 3 items. */
    coretex-header[coretex-menu="mega"] details-menu > ul[data-level="2"]:not(:has(ul[data-level="3"])) {  display: block }

    /* Add a shadow to end of mega menu */
    coretex-header[coretex-menu="mega"][mega-shadow="true"] details-menu > ul[data-level="2"] { box-shadow: 0 4rem 5rem rgb(0 0 0 / .12) }

/** Menu: drawer w/o mobile */
    coretex-header[coretex-menu="drawer"] .menuContent { max-width: 450px }

    /* Open drawer */
    coretex-header[coretex-menu="drawer"] .menuContent { transform: translateY(-150vh); opacity: 0; transition: transform 800ms var(--easeInOutQuint), opacity 1s var(--easeInOutQuint) }
    body.do-menuDrawerBox coretex-header[coretex-menu="drawer"] .menuContent { transform: none; opacity: 1; transition: transform 800ms var(--easeInOutQuint), opacity 0s var(--easeInOutQuint) }

    /* Drawer */
    coretex-header[coretex-menu="drawer"] .menuContent {
        --gap: 0;

        position: fixed;
        inset-inline: 0;
        inset-block-start: 0;
        z-index: 100;
        max-height: 95vh;
        overflow: auto;
        overscroll-behavior: contain;
        padding: var(--padding); 
        margin: var(--padding) var(--layoutInline);
        background: var(--bg);
        background-attachment: fixed;
        border: 1px solid rgb(var(--colorRGB) / .15);
        border-radius: var(--globalRadius);
        box-shadow: 0px 0px 7px 1px rgb(0 0 0 / 0.1);

        /* This will be ignored in Chrome (/issue/356891480) */
        -webkit-backdrop-filter: var(--overlayBlur); 
                backdrop-filter: var(--overlayBlur);
    }

    html.chrome coretex-header[coretex-menu="drawer"] .menuContent { background: var(--bg) } /* Since the backdrop-filter is ignored in Chrome, we need to set a solid background color */

    coretex-header:not([coretex-menu="drawer"]) drawer-header { display: none }

    coretex-header[coretex-menu="drawer"] .menuContent drawer-header {
        --buttonPadding: var(--space-1);
        --buttonMargin: 0;
        margin-block-end: var(--space-5);
    }

    coretex-header[coretex-menu="drawer"] details > summary i { transform: rotate(270deg) }
    coretex-header[coretex-menu="drawer"] details[open] > summary i { transform: rotate(90deg) }
    coretex-header[coretex-menu="drawer"] [data-level="1"] { margin: 0 }
    coretex-header[coretex-menu="drawer"] ul { margin: var(--space-4); margin-inline-end: 0 }

    coretex-header[coretex-menu="drawer"] li.bdotfx:is(:hover,:focus-visible) > a:before,
    coretex-header[coretex-menu="drawer"] li.bdotfx:is(:hover,:focus-visible,:focus-within) > details > summary:before,
    coretex-header[coretex-menu="drawer"] li.bdotfx details[open] > summary:before {
        content: var(--hoverSymbol); 
        position: absolute; 
        inset-inline-start: var(--hoverSymbolInline) 
    }
}

/* Mobile */
@media (max-width: 777px) {
    :is(.mobileTrigger, .tools) { transition: opacity 500ms var(--easeInOutQuint) } 
    body.do-menuDrawerBox :is(.mobileTrigger, .tools) { opacity: 0; pointer-events: none }
    coretex-header[coretex-menu] .menuContent nav.menuPrimary .button { text-align: start; white-space: break-spaces; line-height: 1 }

    coretex-header .coretex-drawer { display: none }
    coretex-header .logo[order-s="1"] { justify-content: start }

    /* 
        === [ CORETEX FYI ] ===  
        You need to keep all code below in sync with the drawer menu code above.
    */
    /** Menu: drawer mobile */
    /* Open drawer */
    coretex-header[coretex-menu] .menuContent { margin-block: 0px; transform: translateY(-150vh); opacity: 0; pointer-events: none; transition: transform 800ms var(--easeInOutQuint), opacity 1s var(--easeInOutQuint) }
    body.do-menuDrawerBox coretex-header[coretex-menu] .menuContent { transform: none; opacity: 1; pointer-events: all; transition: transform 800ms var(--easeInOutQuint), opacity 0s var(--easeInOutQuint) }
    coretex-header[content-type="text"] .menuContent drawer-footer *:not(.noHide) > i { display: none } 

    /* Drawer */
    coretex-header[coretex-menu] .menuContent {
        --gap: 0;

        position: fixed;
        inset-inline: 0;
        inset-block-start: 0;
        z-index: 100;
        max-height: calc(95dvh - var(--headSpace));
        overflow: auto;
        overscroll-behavior: contain;
        padding: var(--padding); 
        margin: var(--padding) var(--layoutInline);
        background: var(--bg);
        background-attachment: fixed;
        color: var(--color);
        border: 1px solid rgb(var(--colorRGB) / .15);
        border-radius: var(--globalRadiusSafe);
        box-shadow: 0px 0px 7px 1px rgb(0 0 0 / 0.1);

        /* This will be ignored in Chrome (/issue/356891480) */
        -webkit-backdrop-filter: var(--overlayBlur); 
                backdrop-filter: var(--overlayBlur);
    }

    coretex-header[coretex-menu] .menuContent drawer-header {
        --buttonPadding: var(--space-1);
        --buttonMargin: 0;
        margin-block-end: var(--space-5);
    }

    coretex-header[coretex-menu] .menuContent drawer-footer {
        --buttonPadding: var(--space-1);
        --buttonMargin: 0;
        --gap: var(--space-3);
        margin-block-start: var(--space-5);
    }

    coretex-header[coretex-menu] details > summary i { transform: rotate(270deg) }
    coretex-header[coretex-menu] details[open] > summary i { transform: rotate(90deg) }
    coretex-header[coretex-menu] [data-level="1"] { margin: 0 }
    coretex-header[coretex-menu] ul { margin: var(--space-4); margin-inline-end: 0 }
    /* === / end === */

    /* Mobile drawer menu specifics */
    coretex-header[coretex-menu] .menuContent .menuPrimary summary.button { --buttonPadding: 0; --buttonMargin: 0; width: 100% }
    coretex-header[coretex-menu] .menuContent a { display: block }
    coretex-header[coretex-menu] .menuContent { 
        inset-block-start: var(--headerHeight);
        inset-block-end: 0;
        height: fit-content;
        transform: translateY(100vh) scale(0.9); 
    }

}

/* Breadcrumb */
.breadcrumb { padding-inline: var(--layoutInline) } 
.breadcrumb > * { padding: var(--space-1); white-space: nowrap }
.breadcrumb > a:first-child { margin-inline-start: 0px; padding-inline-start: 0px } 

/* [C] Predictive search */
coretex-dialog#searchBox { --dialogH: fit-content; --dialogMaxH: 90dvh }

/* Safari doesn't properly handle fit-content in this context - using fallback */
html.mq-desktop.safari coretex-dialog#searchBox { --dialogH: max(100%, 600px); --dialogMaxH: min(90dvh, 600px) }

/* // === [ CORETEX FYI ] ===
 * iOS Safari keyboard fix: 
 * When the virtual keyboard appears, Safari automatically removes overflow:hidden 
 * from the document body, which causes unwanted page scrolling behind modals/dialogs.
 * This creates a poor UX where users can scroll both the dialog content and the 
 * background page simultaneously.
 */
@media screen and (max-width: 777px) {
    coretex-dialog#searchBox { 
        --dialogH: 95dvh; --dialogH: 95dvh;
        --dialogMaxH: 95dvh; --dialogMaxH: 95dvh;
    }
}

/* // === [ CORETEX FYI ] ===
* Search bar positioning fix:
* Ensures the search bar remains visible and accessible when the iOS keyboard
* is active, preventing it from being hidden behind the virtual keyboard.
*/
search-engine .search-section {
    .search-bar { position: sticky; inset-block-end: 0; order: 99 }
    .predictive-search-area { order: 1 }
}

@media (width < 777px) {
    html.ios {
        .search-bar { position: sticky; inset-block-start: var(--space-6); order: 1 }
        .predictive-search-area { order: 99 }
    }
}

coretex-dialog#searchBox predictive-search [data-predictive-search] { display: none; overflow: hidden }

coretex-dialog#searchBox predictive-search[results="true"] [data-predictive-search] { display: block }

coretex-dialog#searchBox x-stack[presuffix] { --inputMargin: 0 }

coretex-dialog#searchBox dialog-wrapper { height: 100% }
coretex-dialog#searchBox main-search form { display: block; height: 100% }

coretex-dialog#searchBox :where(search-engine,main-search) { 
    display: block;
    @media (width >= 777px) { height: 100% }
}

coretex-dialog#searchBox .title { font-size: var(--fontSize); font-family: var(--fontFamily) }

coretex-dialog#searchBox a.search-section { height: 100%; justify-content: end }
coretex-dialog#searchBox a.search-item { gap: var(--gap) }

coretex-dialog#searchBox img { 
    max-width: 65px;
    height: 65px;
    aspect-ratio: 1/1;
    object-fit: var(--prodCardFit, cover);
    object-position: var(--prodCardPosition, center);
}

predictive-search:not([loading]) .predictive-search__loading-state, predictive-search:not([loading]) .predictive-search-status__loading { display: none }
predictive-search[loading] .predictive-search__loading-state, predictive-search[loading] .predictive-search-status__loading { display: block }

coretex-dialog#searchBox #predictive-search-option-search-keywords { margin-block: var(--padding) }

search-engine { --hMargin: 0 0 var(--space-2) }

search-engine .price .price-sale { flex-wrap: wrap; gap: 0 var(--padding)!important }
search-engine .meta .title { --hMargin: 0; line-height: 1.26 }

search-engine .search-list .item:not(.suggest) .button { --buttonWeight: 400; --buttonMargin: 0; --buttonPadding: var(--space-2) }
search-engine .search-list .item.suggest .button { --buttonWeight: 400; --buttonMargin: 0; --buttonPadding: var(--space-2) 0 }

search-engine x-stack { --a11yOffset: 1px }
search-engine x-stack label i { color: var(--inputColor) }

search-engine suggested-links {
    display: block;
    margin-block-start: var(--margin);

    .linkList { gap: var(--space-0) var(--space-2) }
}

/** Login **/
coretex-dialog#loginBox {
    --dialogH: fit-content;
    --dialogMaxH: 90dvh;
}

/***
    Footer 
***/

/* Stealth footer */
html:not(.shopify-design-mode) body[coretex-footer="stealth"] #footerGroup { 
    position: fixed; 
    inset-block-end: 0px;
    z-index: 100;
    width: 100%;
    transform: translateY(100vh);
    transition: transform 800ms var(--easeInOutQuint);
    max-height: calc(100vh - var(--headSpace));
    overflow-y: auto;
    overscroll-behavior: contain;
}

html:not(.shopify-design-mode) body[coretex-footer="stealth"] #footerGroup:target { transform: none }

body[coretex-footer="stealth"] #footerGroup .main-footer { background: var(--bg); background-attachment: fixed; color: var(--color) }
body[coretex-footer="stealth"] #footerGroup .main-footer:first-of-type { border-block-start: 1px solid rgb(var(--colorRGB) / .15) }

body[coretex-footer="stealth"] .stealthFooterOpen { 
    position: fixed; 
    inset-block-end: 0; 
    inset-inline: 0; 
    z-index: 100; 
    display: block; 
    margin-inline: auto; 
    transition: all 500ms var(--easeInOutQuint);
}
body[coretex-footer="stealth"]:has(#footerGroup:target) .stealthFooterOpen { opacity: 0; transform: translateY(50vh); pointer-events: none }

body[coretex-footer="stealth"] #footerGroup .stealthFooterClose { display: block; margin: var(--space-1) auto }

.labelTitle {
    color: var(--labelTitleColor,var(--colorFaded));
    font-size: var(--labelTitleSize, var(--type-3));
    font-weight: var(--labelTitleWeight, 400);
    word-wrap: break-word;
}

#primaryFooter, #secondaryFooter {
    background: var(--bg);
    background-attachment: fixed;
    color: var(--color);
    padding: var(--space-3) var(--layoutInline);
}

#primaryFooter { --gap: var(--space-4) }

/* #primaryFooter > * > section > * { height: 100% } */

#primaryFooter .menu { --gap: 0 var(--space-2) }
#primaryFooter .menu a { display: block; padding-block: var(--space-1); word-break: break-word }

#primaryFooter .socialNets { --iconSize: 1.5rem; gap: var(--space-3); height: 100% }
#primaryFooter .payment-icons { --iconSize: 2.5rem }
#primaryFooter .payment-icons [x-flex] { justify-content: var(--paymentJustify) }
#primaryFooter .follow-on-shop { margin-block: var(--padding) }

#primaryFooter .newsletter {
    --hMargin: 0;
    --pMargin: 0;
    --gap: var(--space-1)
}

#primaryFooter .i18n-selectors { --gap: var(--space-1) var(--space-3); --labelTitleSize: var(--fontSize); }

#primaryFooter :where(.newsletter,.i18n-selectors) button.is-custom { 
    --buttonPadding: var(--space-1); 
    --buttonMargin: 0; 
    --buttonGap: var(--space-1); 
    --buttonWeight: 400
}

#primaryFooter .image img { height: var(--imageSize, 150px); width: fit-content }

@media screen and (max-width: 777px) {
    #primaryFooter { --gap: var(--space-6) var(--space-2) }
}

#secondaryFooter {
    --linkColor: var(--linkColorFaded);
    --gap: var(--space-2) var(--space-8);

    color: var(--colorFaded);
    font-size: 85%;
}

#secondaryFooter .policies { --gap: var(--space-1) var(--space-3) }
#secondaryFooter a { padding-block: var(--space-2) }

/* [C] Localization component */
#languageBox, #countryBox { --dialogH: fit-content }
/*  fixing an annoying iOS problem, 
    where when the keyboard is open, safari removes the `overflow:hidden` from the page 
    creating a scrollable page mess, because you can scroll the dialog but also the page.
*/
@media (width < 777px) { 
    html.ios country-search { display: none} 
}

country-search button[type="reset"] { width: fit-content }
country-search .popular-list li { margin-block: var(--globalBorderWidth) }

.localization-list { gap: var(--globalBorderWidth) }
.localization-list > li { margin-bottom: 0 }

.localization-item { order: 2 }
.localization-item[aria-current="true"] { order: 1 }
.localization-item > a { display: flex; justify-content: space-between; padding: var(--space-1); position: relative }

.localization-item > a:not([aria-current="true"]) .currency .isoCode { opacity: 0 }
.localization-item > a:not([aria-current="true"]):is(:hover,:focus-visible) .currency .isoCode { opacity: 1 }

.localization-item a[aria-current="true"] { text-decoration: underline; font-weight: 600 }
.localization-item a:where([aria-current="true"],:is(:hover,:focus-visible)):before { content: var(--hoverSymbol); position: absolute; inset-inline-start: -0.4em }

localization-form form { display: flex; flex-direction: column; gap: var(--margin) }

/* Numbered pagination */
nav.pagination { 
    margin-block-start: var(--space-9);

    :where(a,ul li > *) { display: inline-block; padding: var(--space-3) }
    [data-current="page"] { text-decoration: underline overline }
    [inert] > * { text-decoration: line-through }
}

/* Shopify Policies pages */
.shopify-policy__title { display: block; text-align: inherit; width: fit-content; margin-inline: var(--layoutCenter, 0) } 

.shopify-policy__container { 
    width: 100%;
    max-width: var(--layoutMaxWidth);
    margin: var(--margin) var(--layoutCenter, 0);
    padding: 0 var(--layoutInline) var(--margin);
}

.shopify-policy__body :is(h1,h2,h3,h4,h5,h6) { 
    --hLine: 1.1;
    --hSpace: 0px;
    margin-block: 1.5em .3em;
}

/* Shopify Marketing confirmation page */
.shopify-email-marketing-confirmation__container {
    padding: 0;
    margin: var(--layoutInline);

    a { text-decoration: underline }
}

/** Cart */
/* Dynamic checkout */
shopify-accelerated-checkout-cart {
    --shopify-accelerated-checkout-button-block-size: 42px;
    --shopify-accelerated-checkout-button-inline-size: 42px;
    --shopify-accelerated-checkout-button-border-radius: var(--globalRadius);
    --shopify-accelerated-checkout-button-box-shadow: none;
    --shopify-accelerated-checkout-inline-alignment: flex-start;
    --shopify-accelerated-checkout-row-gap: var(--margin);
    --shopify-accelerated-checkout-skeleton-background-color: rgb(128 128 128 / 0.4);
    --shopify-accelerated-checkout-skeleton-animation-opacity-start: 1;
    --shopify-accelerated-checkout-skeleton-animation-opacity-end: 0.5;
    --shopify-accelerated-checkout-skeleton-animation-duration: 4s;
    --shopify-accelerated-checkout-skeleton-animation-timing-function: ease;
    display: block;
    margin-block: var(--margin);
}

coretex-cart cart-item ul.product-components {
    margin: 0;

    li:last-child { margin: 0 }
    li { margin-block-end: var(--space-1) }
}

/***
    Home page 
***/

/* Recommended products, recently viewed, and products by vendor */
[coretex-page="product"] .suggested :where(coretex-fetch,product-recommendations) { 
    background: var(--bg);
    background-attachment: fixed;
    color: var(--color)
}

.suggested :where(coretex-fetch,product-recommendations) coretex-scroll product-card {
    --scrollChildMinWidth: 250px;
    --scrollChildMaxWidth: var(--prodCardSlideRatio);

    height: 100%;
    width: var(--scrollChildMinWidth);
}

.suggested.recently-viewed:has(coretex-fetch:not([loading="lazy"])[loaded="false"]) { padding: 0!important; opacity: 0 }

/* Onboarding */
svg.svgph { fill: var(--color); background: rgb(var(--colorRGB) / .1) }

/* Cookies banner */
:is(#shopify-pc__banner.shopify-pc__banner__dialog) {
    box-shadow: none;
    border-radius: var(--globalRadius) var(--globalRadius) 0 0;
    border: none;
    padding: var(--padding);
    margin: 0 var(--layoutInline);
    max-width: calc(100vw - (var(--layoutInline) * 2));
}

:is(#shopify-pc__banner.shopify-pc__banner__dialog) button:is(.shopify-pc__banner__btn-accept,.shopify-pc__banner__btn-decline,.shopify-pc__banner__btn-manage-prefs) {
    display: block;
    padding: var(--buttonPadding);
    border: none;
    border-radius: var(--buttonRadius);
    text-decoration: none;
    text-align: var(--buttonAlign);
}

:is(#shopify-pc__banner.shopify-pc__banner__dialog) button:is(.shopify-pc__banner__btn-manage-prefs) { font-weight: 400 }

body[class^="o-"] .shopify-pc__banner__dialog { z-index: 5 }

.gs-title { --hMargin: 0 }

/* [C] Coretex mouse tracker */
coretex-mouse-tracker { 
    display: block; 
    position: relative; 
    z-index: 2;
    isolation: isolate;

    .featImg img { width: 100%; max-height: 400px; object-fit: contain; object-position: center }

    @media (width >= 777px) {
        [data-track] {
            position: absolute;
            inset: 0;
            z-index: 1;
            width: 100%;
            opacity: 0;
            scale: 0.9;
            transform-origin: center;
            transform: translate(var(--mouse-x, 0px), var(--mouse-y, 0px));
            will-change: transform;
            pointer-events: none;
        }

        [data-track="animate"], [data-track*="animate"] { transition: scale 200ms var(--easeOutQuart), opacity 200ms var(--easeOutQuart) }
        [data-track*="show"] { opacity: 1; scale: 1 }
        [data-track*="smooth"] { transition: scale 200ms var(--easeOutQuart), opacity 200ms var(--easeOutQuart) }
        [data-track*="instant"] { transition: scale 200ms var(--easeOutQuart), opacity 200ms var(--easeOutQuart) }
    }
}

/* [S] Coretex scroll snap slider styles */
coretex-scroll { display: block; max-width: 100% }
coretex-scroll[scrollable] [scroll-area] { contain: content; scrollbar-width: none; user-select: none; cursor: grab; scroll-padding-left: var(--layoutInline) }
coretex-scroll[scrollable] [scroll-area] [scroll-slide] { user-select: none }
coretex-scroll[scrollable] [scroll-area]::-webkit-scrollbar { display: none }
coretex-scroll:not([scrollable-left]) [scroll-button-prev], 
coretex-scroll:not([scrollable-right]) [scroll-button-next] { opacity: 0.2; cursor: not-allowed }
[dir="rtl"] coretex-scroll [scroll-button-prev] { order: 1 }
coretex-scroll :where([scroll-button-prev],[scroll-button-next]) { display: none }
coretex-scroll[scrollable] :where([scroll-button-prev],[scroll-button-next]) { display: block }

coretex-scroll .coretex-scroll-nav { opacity: 0; transition: opacity 500ms ease-in-out }
coretex-scroll:where(:hover,:focus-within) .coretex-scroll-nav { opacity: 1 }

coretex-scroll:not([scrollable]) .coretex-scroll-nav { display: none!important }
@media (max-width: 777px) { coretex-scroll .coretex-scroll-nav { display: none!important } }

coretex-scroll [scroll-area] [scroll-slide]:first-child { margin-inline-start: var(--layoutInline) }
coretex-scroll [scroll-area] [scroll-slide]:last-child { margin-inline-end: var(--layoutInline) }

/* Coretex slider */
coretex-slider [slider-viewport] { display: block; position: relative; overflow: hidden }
coretex-slider [slider-container] { display: flex; touch-action: pan-y pinch-zoom; backface-visibility: hidden; scrollbar-width: none; user-select: none; cursor: grab }
coretex-slider [slider-slide] { flex: 0 0 100%; user-select: none }

/* [S] Sections general */
.listOfProds {
    --scrollChildMinWidth: var(--prodCardSlideRatio);
    --scrollChildMaxWidth: var(--prodCardSlideRatio);

    [scrollable] .onboarding:first-child { margin-inline-start: var(--layoutInline) }

    /* List layout: use padding on scroll area instead of margin on first child */
    &:not([layout-type="grid"]) [scroll-area] {
        padding-inline: var(--layoutInline);
    }
    &:not([layout-type="grid"]) [scroll-area] [scroll-slide]:first-child {
        margin-inline-start: 0;
    }
    &:not([layout-type="grid"]) [scroll-area] [scroll-slide]:last-child {
        margin-inline-end: 0;
    }

    /* Layout type grid */
    &[layout-type="grid"] {
        padding-inline: var(--layoutInline);

        .product-grid {
            gap: var(--gridGap);
            @media (width < 777px) { gap: var(--gridGapMob) }
        }
    }
}

@media (width < 777px) {
    .listOfProds { --scrollChildMinWidth: 250px; --scrollChildMaxWidth: 250px }
    .recently-viewed.listOfProds { --scrollChildMinWidth: fit-content; --scrollChildMaxWidth: fit-content }
}


/* [S] Sections heading */
.section-heading { --hMargin: 0; --pMargin: 0; margin-block-end: var(--space-4) }
.section-heading .description { max-width: 62ch }
.section-heading:empty { display: none }
coretex-scroll .section-heading { padding-inline: var(--layoutInline) }
.section-heading :where(.coretex-scroll-nav,.cta[js="end"]) { margin-inline-start: auto }
.section-heading[addpad] { padding-inline: var(--layoutInline) }

@media(min-width: 777px) {
    .shopify-section .section-heading[stealth="true"] { opacity: 0; transition: opacity 500ms ease-in-out }
    .shopify-section:where(:hover,:focus-within) .section-heading[stealth="true"] { opacity: 1 }
}

/* [C] Autoscroll slider */
[autoscroll-toggle][aria-pressed="true"] [autoscroll-play-text],
[autoscroll-toggle][aria-pressed="false"] [autoscroll-pause-text] { display: none }

/* Grid to act like a flex container */
[flow="horizontal"] { display: grid; grid-auto-flow: column }
[flow="vertical"] { display: grid; grid-auto-flow: row }

/* [S] Used for Hero Banner alignments */
x-flex[pi="top left"] { align-items: flex-start; justify-content: flex-start }
x-flex[pi="top center"] { align-items: flex-start; justify-content: center }
x-flex[pi="top right"] { align-items: flex-start; justify-content: flex-end }
x-flex[pi="top between"] { align-items: flex-start; width: 100%; }

x-flex[pi="center left"] { align-items: center; justify-content: flex-start }
x-flex[pi="center"] { align-items: center; justify-content: center }
x-flex[pi="center right"] { align-items: center; justify-content: flex-end }
x-flex[pi="center between"] { align-items: center; width: 100%; }

x-flex[pi="bottom left"] { align-items: flex-end; justify-content: flex-start }
x-flex[pi="bottom center"] { align-items: flex-end; justify-content: center }
x-flex[pi="bottom right"] { align-items: flex-end; justify-content: flex-end }
x-flex[pi="bottom between"] { align-items: flex-end; width: 100%; }

x-flex[pi*="between"] x-cell.content { width: 100% }
x-flex[pi*="between"] x-cell.content x-flex { justify-content: space-between }

x-flex[pi*="between"][orientation="column"] x-cell.content { height: 100% }
x-flex[pi*="between"][orientation="column"] x-cell.content x-flex { height: 100%; justify-content: space-between }

@media (max-width: 777px) {
    x-flex[pi-s="top left"] { align-items: flex-start; justify-content: flex-start }
    x-flex[pi-s="top center"] { align-items: flex-start; justify-content: center }
    x-flex[pi-s="top right"] { align-items: flex-start; justify-content: flex-end }
    x-flex[pi-s="top between"] { align-items: flex-start; width: 100%; }

    x-flex[pi-s="center left"] { align-items: center; justify-content: flex-start }
    x-flex[pi-s="center"] { align-items: center; justify-content: center }
    x-flex[pi-s="center right"] { align-items: center; justify-content: flex-end }
    x-flex[pi-s="center between"] { align-items: center; width: 100%; }

    x-flex[pi-s="bottom left"] { align-items: flex-end; justify-content: flex-start }
    x-flex[pi-s="bottom center"] { align-items: flex-end; justify-content: center }
    x-flex[pi-s="bottom right"] { align-items: flex-end; justify-content: flex-end }
    x-flex[pi-s="bottom between"] { align-items: flex-end; width: 100%; }

    x-flex[pi-s*="between"] x-cell.content { width: 100% }
    x-flex[pi-s*="between"] x-cell.content x-flex { justify-content: space-between }

    x-flex[pi-s*="between"][orientation-s="column"] .content { height: 100% }
    x-flex[pi-s*="between"][orientation-s="column"] .content x-flex { height: 100%; justify-content: space-between }
}/* Completely remove the hover dot */
li.bdotfx > a::before {
  content: none !important;
  display: none !important;
}
li.bdotfx > a:hover {
  font-weight: bold !important;
}


/* MAKE TEXT BOLD ON HOVER */
coretex-header[coretex-menu="drawer"] li.bdotfx > a:hover,
coretex-header[coretex-menu="drawer"] li.bdotfx > details > summary:hover {
  font-weight: bold !important;
}
/* Fix mobile tap delay on menu summaries */
details.lv1 > summary { touch-action: manipulation; cursor: pointer }

/* Parent <li> positioning anchor */
.bdotfx {
  position: relative;
}

/* Align <ul> submenu under the <summary> or parent link */
.bdotfx > details > details-menu > ul {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 100%;
  z-index: 10;
  background: white; /* match your menu background */
  padding-left: 0;
}

/* Optional: align deeper submenus to the right of their parent */
.bdotfx > details > details-menu > ul[data-level="3"] {
  left: 100%;
  top: 0;
}
/* === Desktop only === */
@media (min-width: 768px) {
  .bdotfx {
    position: relative;
  }

  .bdotfx > details > details-menu > ul {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 100%;
    z-index: 10;
    background: white;
    padding-left: 0;
  }

  /* Optional: deeper submenu alignment */
  .bdotfx > details > details-menu > ul[data-level="3"] {
    left: 100%;
    top: 0;
  }
}
@media (max-width: 777px) {
  /* Space out top-level menu items in mobile drawer */
  coretex-drawer ul[data-level="1"] > li.bdotfx {
    margin-bottom: 3rem !important;
  }

  /* Submenu items: tighter spacing */
  coretex-drawer ul[data-level="2"] > li.bdotfx {
    margin-bottom: 0 !important;
  }

  /* Reduce margin when submenu is open */
  coretex-drawer .menuPrimary li:has(details[open]) {
    margin-bottom: 0 !important;
  }
}

/* === Mobile (default) === */
@media (max-width: 767px) {
  .bdotfx > details > details-menu > ul {
    position: static;
    background: transparent;
    padding-left: 1rem; /* optional indentation */
  }
}

/* Mobile */
@media (max-width: 777px) {
  :is(.mobileTrigger, .tools) {
    transition: opacity 500ms var(--easeInOutQuint);
  }
  body.do-menuDrawerBox :is(.mobileTrigger, .tools) {
    opacity: 0;
    pointer-events: none;
  }
  coretex-header[coretex-menu] .menuContent nav.menuPrimary .button {
    text-align: start;
    white-space: break-spaces;
    line-height: 1;
  }

  /* 
        === [ CORETEX FYI ] ===  
        You need to keep all code below in sync with the drawer menu code above.
    */
  /** Menu: drawer mobile */
  /* Open drawer */
  coretex-header[coretex-menu] .menuContent {
    margin-block: 0px;
    transform: translateY(-150vh);
    opacity: 0;
    pointer-events: none;
    transition: transform 800ms var(--easeInOutQuint),
      opacity 1s var(--easeInOutQuint);
  }
  body.do-menuDrawerBox coretex-header[coretex-menu] .menuContent {
    transform: none;
    opacity: 1;
    pointer-events: all;
    transition: transform 800ms var(--easeInOutQuint),
      opacity 0s var(--easeInOutQuint);
  }

  /* Drawer */
  coretex-header[coretex-menu] .menuContent {
    --gap: 0;

    position: fixed;
    inset-inline: 0;
    inset-block-start: 0;
    z-index: 100;
    max-height: calc(95dvh - var(--headSpace));
    overflow: auto;
    overscroll-behavior: contain;
    padding: var(--padding);
    margin: var(--padding) var(--layoutInline);
    background: var(--bg);
    background-attachment: fixed;
    color: var(--color);
    border: 1px solid rgb(var(--colorRGB) / 0.15);
    border-radius: var(--globalRadius);
    box-shadow: 0px 0px 7px 1px rgb(0 0 0 / 0.1);

    /* This will be ignored in Chrome (/issue/356891480) */
    -webkit-backdrop-filter: var(--overlayBlur);
    backdrop-filter: var(--overlayBlur);
  }

  coretex-header[coretex-menu] .menuContent drawer-header {
    --buttonPadding: var(--space-1);
    --buttonMargin: 0;
    margin-block-end: var(--space-5);
  }

  coretex-header[coretex-menu] .menuContent drawer-footer {
    --buttonPadding: var(--space-1);
    --buttonMargin: 0;
    --gap: var(--space-3);
    margin-block-start: var(--space-5);
  }

  coretex-header[coretex-menu] details > summary i {
    transform: rotate(270deg);
  }
  coretex-header[coretex-menu] details[open] > summary i {
    transform: rotate(90deg);
  }
  coretex-header[coretex-menu] [data-level="1"] {
    margin: 0;
  }
  coretex-header[coretex-menu] ul {
    margin: var(--space-4);
    margin-inline-end: 0;
  }
  /* === / end === */

  /* Mobile drawer menu specifics */
  coretex-header[coretex-menu] .menuContent a {
    display: block;
  }
  coretex-header[coretex-menu] .menuContent {
    inset-block-start: var(--headerHeight);
    inset-block-end: 0;
    height: fit-content;
    transform: translateY(100vh) scale(0.9);
  }
}
coretex-header,
.mainHeader {
  padding-top: 1.5rem;
  padding-left: 3.5rem;
  padding-right: 3.5rem;
}
@media (max-width: 777px) {
  coretex-header,
  .mainHeader {
    padding-left: var(--layoutInline, 1rem);
    padding-right: var(--layoutInline, 1rem);
  }
}

/* [C] Predictive search */
coretex-dialog#searchBox {
  --dialogH: fit-content;
  --dialogMaxH: 90vh;
}

/* Safari fit-content bug, for some reason the fit-content doesn't work on Safari in our case.*/
html.mq-desktop.safari coretex-dialog#searchBox {
  --dialogH: max(100%, 600px);
  --dialogMaxH: min(90vh, 600px);
}

/* trying to fix an annoying iOS problem, 
where when the keyboard is open, safari removes the `overflow:hidden` from the page 
creating a scrollable page mess, because you can scroll the dialog but also the page.
*/
@media screen and (max-width: 777px) {
  coretex-dialog#searchBox {
    --dialogH: 90dvh;
    --dialogH: 90dvh;
    --dialogMaxH: 90dvh;
    --dialogMaxH: 90dvh;
  }
}

coretex-dialog#searchBox predictive-search [data-predictive-search] {
  display: none;
  overflow: hidden;
}

coretex-dialog#searchBox
  predictive-search[results="true"]
  [data-predictive-search] {
  display: block;
}

coretex-dialog#searchBox x-stack[presuffix] {
  --inputMargin: 0;
}

coretex-dialog#searchBox dialog-wrapper {
  height: 100%;
}
coretex-dialog#searchBox :where(search-engine, main-search) {
  display: block;
  height: 100%;
}
coretex-dialog#searchBox main-search form {
  display: block;
  height: 100%;
}

coretex-dialog#searchBox .title {
  font-size: var(--fontSize);
  font-family: var(--fontFamily);
}

coretex-dialog#searchBox a.search-section {
  height: 100%;
  justify-content: end;
}
coretex-dialog#searchBox a.search-item {
  gap: var(--gap);
}

coretex-dialog#searchBox img {
  max-width: 65px;
  height: var(--prodCardHeight, initial);
  aspect-ratio: var(--prodCardRatio, 1 / 1);
  object-fit: var(--prodCardFit, cover);
  object-position: var(--prodCardPosition, center);
}

predictive-search:not([loading]) .predictive-search__loading-state,
predictive-search:not([loading]) .predictive-search-status__loading {
  display: none;
}
predictive-search[loading] .predictive-search__loading-state,
predictive-search[loading] .predictive-search-status__loading {
  display: block;
}

coretex-dialog#searchBox #predictive-search-option-search-keywords {
  margin-block: var(--padding);
}

search-engine {
  --hMargin: 0 0 var(--space-2);
}

search-engine .price .price-sale {
  flex-wrap: wrap;
  gap: 0 var(--padding) !important;
}
search-engine .meta .title {
  --hMargin: 0;
  line-height: 1.26;
}

search-engine .search-list .item:not(.suggest) .button {
  --buttonWeight: 400;
  --buttonMargin: 0;
  --buttonPadding: var(--space-2);
}
search-engine .search-list .item.suggest .button {
  --buttonWeight: 400;
  --buttonMargin: 0;
  --buttonPadding: var(--space-2) 0;
}

/***
    Footer 
***/

/* Stealth footer */
html:not(.shopify-design-mode) body[coretex-footer="stealth"] #footerGroup {
  position: fixed;
  inset-block-end: 0px;
  z-index: 100;
  width: 100%;
  transform: translateY(100vh);
  transition: transform 800ms var(--easeInOutQuint);
  max-height: calc(100vh - var(--headSpace));
  overflow-y: auto;
  overscroll-behavior: contain;
}

html:not(.shopify-design-mode)
  body[coretex-footer="stealth"]
  #footerGroup:target {
  transform: none;
}

body[coretex-footer="stealth"] #footerGroup .main-footer {
  background: var(--bg);
  background-attachment: fixed;
  color: var(--color);
}
body[coretex-footer="stealth"] #footerGroup .main-footer:first-of-type {
  border-block-start: 1px solid rgb(var(--colorRGB) / 0.15);
}

body[coretex-footer="stealth"] .stealthFooterOpen {
  position: fixed;
  inset-block-end: 0;
  inset-inline: 0;
  z-index: 100;
  display: block;
  margin-inline: auto;
  transition: all 500ms var(--easeInOutQuint);
}
body[coretex-footer="stealth"]:has(#footerGroup:target) .stealthFooterOpen {
  opacity: 0;
  transform: translateY(50vh);
  pointer-events: none;
}

body[coretex-footer="stealth"] #footerGroup .stealthFooterClose {
  display: block;
  margin: var(--space-1) auto;
}

.labelTitle {
  color: var(--labelTitleColor, var(--colorFaded));
  font-size: var(--labelTitleSize, var(--type-3));
  font-weight: var(--labelTitleWeight, 400);
  word-wrap: break-word;
}

#primaryFooter,
#secondaryFooter {
  background: var(--bg);
  background-attachment: fixed;
  color: var(--color);
  padding: var(--space-3) var(--layoutInline);
}

#primaryFooter {
  --gap: var(--space-4);
}

/* #primaryFooter > * > section > * { height: 100% } */

#primaryFooter .menu {
  --gap: 0 var(--space-2);
}
#primaryFooter .menu a {
  display: block;
  padding-block: var(--space-1);
  word-break: break-word;
}

#primaryFooter .socialNets {
  --iconSize: 1.5rem;
  gap: var(--space-3);
  height: 100%;
}
#primaryFooter .payment-icons {
  --iconSize: 2.5rem;
}
#primaryFooter .payment-icons [x-flex] {
  justify-content: var(--paymentJustify);
}
#primaryFooter .follow-on-shop {
  margin-block: var(--padding);
}

#primaryFooter .newsletter {
  --hMargin: 0;
  --pMargin: 0;
  --gap: var(--space-1);
}

#primaryFooter .i18n-selectors {
  --gap: var(--space-1) var(--space-3);
  --labelTitleSize: var(--fontSize);
}

#primaryFooter :where(.newsletter, .i18n-selectors) button.is-custom {
  --buttonPadding: var(--space-1);
  --buttonMargin: 0;
  --buttonGap: var(--space-1);
  --buttonWeight: 400;
}

@media screen and (max-width: 777px) {
  #primaryFooter {
    --gap: var(--space-6) var(--space-2);
  }
}

#secondaryFooter {
  --linkColor: var(--linkColorFaded);
  --gap: var(--space-2) var(--space-8);

  color: var(--colorFaded);
  font-size: 85%;
}

#secondaryFooter .policies {
  --gap: var(--space-1) var(--space-3);
}
#secondaryFooter a {
  padding-block: var(--space-2);
}

/* [C] Localization component */
#languageBox,
#countryBox {
  --dialogH: fit-content;
}
/*  fixing an annoying iOS problem, 
    where when the keyboard is open, safari removes the `overflow:hidden` from the page 
    creating a scrollable page mess, because you can scroll the dialog but also the page.
*/
@media screen and (max-width: 777px) {
  #countryBox .country-filter {
    display: none;
  }
}

country-search button[type="reset"] {
  width: fit-content;
}
country-search .popular-list li {
  margin-block: var(--globalBorderWidth);
}

.localization-list {
  gap: var(--globalBorderWidth);
}
.localization-list > li {
  margin-bottom: 0;
}

.localization-item {
  order: 2;
}
.localization-item[aria-current="true"] {
  order: 1;
}
.localization-item > a {
  display: flex;
  justify-content: space-between;
  padding: var(--space-1);
  position: relative;
}

.localization-item > a:not([aria-current="true"]) .currency .isoCode {
  opacity: 0;
}
.localization-item
  > a:not([aria-current="true"]):is(:hover, :focus, :focus-visible)
  .currency
  .isoCode {
  opacity: 1;
}

.localization-item a[aria-current="true"] {
  text-decoration: underline;
  font-weight: 600;
}
.localization-item
  a:where([aria-current="true"], :is(:hover, :focus, :focus-visible)):before {
  content: var(--hoverSymbol);
  position: absolute;
  inset-inline-start: -0.4em;
}

localization-form form {
  display: flex;
  flex-direction: column;
  gap: var(--margin);
}

/* Numbered pagination */
nav.pagination {
  margin-block-start: var(--space-9);
}
nav.pagination :where(a, ul li > *) {
  display: inline-block;
  padding: var(--space-3);
}
nav.pagination [aria-current="page"] {
  text-decoration: underline overline;
}
nav.pagination [disabled] {
  pointer-events: none;
  text-decoration: line-through;
}

/* Shopify Policies pages */
.shopify-policy__title {
  display: block;
  text-align: inherit;
  width: fit-content;
  margin-inline: var(--layoutCenter, 0);
}

.shopify-policy__container {
  width: 100%;
  max-width: var(--layoutMaxWidth);
  margin-inline: var(--layoutCenter, 0);
  padding: 0 var(--layoutInline) var(--margin);
}

.shopify-policy__body :is(h1, h2, h3, h4, h5, h6) {
  --hLine: 1.1;
  --hSpace: 0px;
  margin-block: 1.5em 0.3em;
}

/** Cart */
/* Dynamic checkout */
shopify-accelerated-checkout-cart {
  --shopify-accelerated-checkout-button-block-size: 42px;
  --shopify-accelerated-checkout-button-inline-size: 42px;
  --shopify-accelerated-checkout-button-border-radius: var(--globalRadius);
  --shopify-accelerated-checkout-button-box-shadow: none;
  --shopify-accelerated-checkout-inline-alignment: flex-start;
  --shopify-accelerated-checkout-row-gap: var(--margin);
  --shopify-accelerated-checkout-skeleton-background-color: rgb(
    128 128 128 / 0.4
  );
  --shopify-accelerated-checkout-skeleton-animation-opacity-start: 1;
  --shopify-accelerated-checkout-skeleton-animation-opacity-end: 0.5;
  --shopify-accelerated-checkout-skeleton-animation-duration: 4s;
  --shopify-accelerated-checkout-skeleton-animation-timing-function: ease;
  display: block;
  margin-block: var(--margin);
}
.go-2-checkout {
  background-color: #3D4136; /* Replace with your dark green */
  color: #fff;
  border: none;
  border-radius: var(--radius);
  font-weight: 600;
  padding: 1rem;
  width: 100%;
  text-align: center;
  margin-top: 1rem;
  transition: background-color 0.2s ease;
}

.go-2-checkout:hover {
  background-color: rgb(var(--colorRGB) / 0.7);
}


coretex-cart cart-item ul.product-components {
  margin: 0;

  li:last-child {
    margin: 0;
  }
  li {
    margin-block-end: var(--space-1);
  }
}

/***
    Home page 
***/

/* Recommended products, recently viewed, and products by vendor */
[coretex-page="product"]
  .suggested
  :where(coretex-fetch, product-recommendations) {
  background: var(--bg);
  background-attachment: fixed;
  color: var(--color);
}

.suggested :where(coretex-fetch, product-recommendations) product-card {
  --scrollChildMinWidth: 250px;
  --scrollChildMaxWidth: var(--prodCardSlideRatio);

  height: 100%;
  width: var(--scrollChildMinWidth);
}

.suggested.recently-viewed:has(
    coretex-fetch:not([loading="lazy"])[loaded="false"]
  ) {
  padding: 0 !important;
  opacity: 0;
}

/* Onboarding */
svg.svgph {
  fill: var(--color);
  background: rgb(var(--colorRGB) / 0.1);
}
product-card.onboarding .svgph {
  width: 100%;
}

/* Cookies banner */
:is(#shopify-pc__banner.shopify-pc__banner__dialog) {
  box-shadow: none;
  border-radius: var(--radius) var(--radius) 0 0;
  border: none;
  padding: var(--padding);
  margin: 0 var(--layoutInline);
  max-width: calc(100vw - (var(--layoutInline) * 2));
}

:is(#shopify-pc__banner.shopify-pc__banner__dialog)
  button:is(
    .shopify-pc__banner__btn-accept,
    .shopify-pc__banner__btn-decline,
    .shopify-pc__banner__btn-manage-prefs
  ) {
  display: block;
  padding: var(--buttonPadding);
  border: none;
  border-radius: var(--buttonRadius);
  text-decoration: none;
  text-align: var(--buttonAlign);
}

:is(#shopify-pc__banner.shopify-pc__banner__dialog)
  button:is(.shopify-pc__banner__btn-manage-prefs) {
  font-weight: 400;
}

body[class^="o-"] .shopify-pc__banner__dialog {
  z-index: 5;
}

.gs-title {
  --hMargin: 0;
}

/* [C] Coretex mouse tracker */
coretex-mouse-tracker {
  display: block;
  position: relative;
  z-index: 2;
}
coretex-mouse-tracker a * {
  pointer-events: none;
  position: relative;
  z-index: 1;
}

coretex-mouse-tracker img {
  width: 100%;
  max-height: 400px;
  object-fit: contain;
  object-position: center;
}

@media (min-width: 777px) {
  coretex-mouse-tracker [data-track] {
    position: absolute;
    z-index: 0;
    width: 100%;
    opacity: 0;
    scale: 0.9;
    transform-origin: center;
  }

  coretex-mouse-tracker [data-track].animate {
    transition: scale 200ms var(--easeOutQuart),
      opacity 200ms var(--easeOutQuart);
  }
  coretex-mouse-tracker [data-track].show {
    opacity: 1;
    scale: 1;
  }
}

/* [S] Coretex scroll snap slider styles */
coretex-scroll {
  display: block;
  max-width: 100%;
}
coretex-scroll[scrollable] [scroll-area] {
  contain: content;
  scrollbar-width: none;
  user-select: none;
  cursor: grab;
  scroll-padding-left: var(--layoutInline);
}
coretex-scroll[scrollable] [scroll-area] [scroll-slide] {
  user-select: none;
}
coretex-scroll[scrollable] [scroll-area]::-webkit-scrollbar {
  display: none;
}
coretex-scroll:not([scrollable-left]) [scroll-button-prev],
coretex-scroll:not([scrollable-right]) [scroll-button-next] {
  opacity: 0.2;
  cursor: not-allowed;
}
[dir="rtl"] coretex-scroll [scroll-button-prev] {
  order: 1;
}
coretex-scroll :where([scroll-button-prev], [scroll-button-next]) {
  display: none;
}
coretex-scroll[scrollable] :where([scroll-button-prev], [scroll-button-next]) {
  display: block;
}

coretex-scroll .coretex-scroll-nav {
  opacity: 0;
  transition: opacity 500ms ease-in-out;
}
coretex-scroll:where(:hover, :focus-within) .coretex-scroll-nav {
  opacity: 1;
}

coretex-scroll:not([scrollable]) .coretex-scroll-nav {
  display: none !important;
}
@media (max-width: 777px) {
  coretex-scroll .coretex-scroll-nav {
    display: none !important;
  }
}

coretex-scroll [scroll-area] [scroll-slide]:first-child {
  margin-inline-start: var(--layoutInline);
}
coretex-scroll [scroll-area] [scroll-slide]:last-child {
  margin-inline-end: var(--layoutInline);
}

/* Coretex slider */
coretex-slider [slider-viewport] {
  display: block;
  position: relative;
  overflow: hidden;
}
coretex-slider [slider-container] {
  display: flex;
  touch-action: pan-y pinch-zoom;
  backface-visibility: hidden;
  scrollbar-width: none;
  user-select: none;
  cursor: grab;
}
coretex-slider [slider-slide] {
  flex: 0 0 100%;
  user-select: none;
}

/* [S] Sections general */
.listOfProds {
  --scrollChildMinWidth: var(--prodCardSlideRatio);
  --scrollChildMaxWidth: var(--prodCardSlideRatio);
}
@media (max-width: 777px) {
  .listOfProds {
    --scrollChildMinWidth: 250px;
    --scrollChildMaxWidth: 250px;
  }
  .recently-viewed.listOfProds {
    --scrollChildMinWidth: fit-content;
    --scrollChildMaxWidth: fit-content;
  }
}
.listOfProds .onboarding:first-child {
  margin-inline-start: var(--layoutInline);
}

/* [S] Sections heading */
.section-heading {
  --hMargin: 0;
  --pMargin: 0;
  margin-block-end: var(--space-4);
}
.section-heading .description {
  max-width: 62ch;
}
.section-heading:empty {
  display: none;
}
coretex-scroll .section-heading {
  padding-inline: var(--layoutInline);
}
.section-heading :where(.coretex-scroll-nav, .cta[js="end"]) {
  margin-inline-start: auto;
}
.section-heading[addpad] {
  padding-inline: var(--layoutInline);
}

@media (min-width: 777px) {
  .shopify-section .section-heading[stealth="true"] {
    opacity: 0;
    transition: opacity 500ms ease-in-out;
  }
  .shopify-section:where(:hover, :focus-within)
    .section-heading[stealth="true"] {
    opacity: 1;
  }
}

/* [S] Used for Hero Banner alignments */
x-flex[pi="top left"] {
  align-items: flex-start;
  justify-content: flex-start;
}
x-flex[pi="top center"] {
  align-items: flex-start;
  justify-content: center;
}
x-flex[pi="top right"] {
  align-items: flex-start;
  justify-content: flex-end;
}
x-flex[pi="top between"] {
  align-items: flex-start;
  width: 100%;
}

x-flex[pi="center left"] {
  align-items: center;
  justify-content: flex-start;
}
x-flex[pi="center"] {
  align-items: center;
  justify-content: center;
}
x-flex[pi="center right"] {
  align-items: center;
  justify-content: flex-end;
}
x-flex[pi="center between"] {
  align-items: center;
  width: 100%;
}

x-flex[pi="bottom left"] {
  align-items: flex-end;
  justify-content: flex-start;
}
x-flex[pi="bottom center"] {
  align-items: flex-end;
  justify-content: center;
}
x-flex[pi="bottom right"] {
  align-items: flex-end;
  justify-content: flex-end;
}
x-flex[pi="bottom between"] {
  align-items: flex-end;
  width: 100%;
}

x-flex[pi*="between"] x-cell.content {
  width: 100%;
}
x-flex[pi*="between"] x-cell.content x-flex {
  justify-content: space-between;
}

x-flex[pi*="between"][orientation="column"] x-cell.content {
  height: 100%;
}
x-flex[pi*="between"][orientation="column"] x-cell.content x-flex {
  height: 100%;
  justify-content: space-between;
}

@media (max-width: 777px) {
  x-flex[pi-s="top left"] {
    align-items: flex-start;
    justify-content: flex-start;
  }
  x-flex[pi-s="top center"] {
    align-items: flex-start;
    justify-content: center;
  }
  x-flex[pi-s="top right"] {
    align-items: flex-start;
    justify-content: flex-end;
  }
  x-flex[pi-s="top between"] {
    align-items: flex-start;
    width: 100%;
  }

  x-flex[pi-s="center left"] {
    align-items: center;
    justify-content: flex-start;
  }
  x-flex[pi-s="center"] {
    align-items: center;
    justify-content: center;
  }
  x-flex[pi-s="center right"] {
    align-items: center;
    justify-content: flex-end;
  }
  x-flex[pi-s="center between"] {
    align-items: center;
    width: 100%;
  }

  x-flex[pi-s="bottom left"] {
    align-items: flex-end;
    justify-content: flex-start;
  }
  x-flex[pi-s="bottom center"] {
    align-items: flex-end;
    justify-content: center;
  }
  x-flex[pi-s="bottom right"] {
    align-items: flex-end;
    justify-content: flex-end;
  }
  x-flex[pi-s="bottom between"] {
    align-items: flex-end;
    width: 100%;
  }

  x-flex[pi-s*="between"] x-cell.content {
    width: 100%;
  }
  x-flex[pi-s*="between"] x-cell.content x-flex {
    justify-content: space-between;
  }

  x-flex[pi-s*="between"][orientation-s="column"] .content {
    height: 100%;
  }
  x-flex[pi-s*="between"][orientation-s="column"] .content x-flex {
    height: 100%;
    justify-content: space-between;
  }
}
/* Make dropdown background transparent */
.header__submenu,
.site-nav__dropdown,
ul.sub-menu,
ul.dropdown {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* Make dropdown links clean */
.header__submenu a,
.site-nav__dropdown a,
ul.sub-menu a,
ul.dropdown a {
  background: transparent !important;
  color: inherit !important;
}

/* Optional: remove hover background effect */
.header__submenu a:hover,
.site-nav__dropdown a:hover,
ul.sub-menu a:hover,
ul.dropdown a:hover {
  background: transparent !important;
  text-decoration: underline;
}
/* Remove background and box from dropdown menus */
.site-nav__dropdown,
.header__submenu,
ul.sub-menu,
ul.dropdown {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* Ensure dropdown appears on hover */
.site-nav__item:hover .site-nav__dropdown,
.header__item:hover .header__submenu {
  display: block !important;
}

/* Adjust dropdown text styling */
.site-nav__dropdown li a,
.header__submenu li a,
ul.sub-menu li a,
ul.dropdown li a {
  color: inherit !important;
  padding: 10px 15px;
  background: transparent !important;
}

/* Remove hover background on dropdown items */
.site-nav__dropdown li a:hover,
.header__submenu li a:hover,
ul.sub-menu li a:hover,
ul.dropdown li a:hover {
  background: transparent !important;
  text-decoration: underline;
}
/* Fully transparent Etheryx dropdown fix */
ul.c-sub.c-sub--depth1 {
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
}
/* Dropdown links clean */
ul.c-sub.c-sub--depth1 li a {
  background: transparent !important;
  color: inherit !important;
}

/* Optional: cleaner hover */
ul.c-sub.c-sub--depth1 li a:hover {
  background: transparent !important;
  text-decoration: underline;
}

/* === FIX SHOP DROPDOWN BACKGROUND === */
coretex-header ul[data-level="2"] {
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

coretex-header ul[data-level="2"] li a:hover {
  background: transparent !important;
  text-decoration: underline;
}

@media (min-width: 778px) {
  /* Universal transparent dropdown for Etheryx & Coretex headers */
  coretex-header[coretex-menu="drop"] ul[data-level="2"],
  ul.c-sub.c-sub--depth1 {
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  /* Clean links */
  coretex-header[coretex-menu="drop"] ul[data-level="2"] li a,
  ul.c-sub.c-sub--depth1 li a {
    background: transparent !important;
    color: inherit !important;
  }

  /* On hover: no background, just underline */
  coretex-header[coretex-menu="drop"] ul[data-level="2"] li a:hover,
  ul.c-sub.c-sub--depth1 li a:hover {
    background: transparent !important;
    text-decoration: underline;
  }
}

/* 🛠 FINAL universal dropdown transparency fix */
coretex-header details-menu,
coretex-header details-menu > ul[data-level="2"],
coretex-header details-menu > ul[data-level="2"] > li,
coretex-header details-menu > ul[data-level="2"] > li > a,
coretex-header details-menu > ul[data-level="2"] > li > a:hover {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  color: #848a84 !important;
  text-decoration: none !important;
}
.featured-text.about-hero-fix .content.rte,
.featured-text.about-hero-fix .content.rte * {
  all: unset;
  display: block;
  font-family: inherit;
  font-size: var(--type-4);
  text-align: center;
  max-width: 90ch !important;
  margin-inline: auto;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  hyphens: auto !important;
}
.etheryx-product-media {
  padding-left: var(--space-4); /* adjust as needed */
}
.infinite-carousel {
  overflow: hidden;
  width: 100%;
  position: relative;
}

.infinite-track {
  display: flex;
  width: max-content;
  animation: scroll-left 40s linear infinite;
}

.carousel-item {
  flex: none;
  width: 190px; /* ⬅️ Add a fixed width */
  margin-right: 2rem;
  display: inline-block;
  text-decoration: none;
  transition: transform 0.3s ease;
}
/* Smaller cards on mobile */
@media screen and (max-width: 768px) {
  .carousel-item {
    width: 130px;
    margin-right: 1rem;
  }
}

.carousel-item:hover {
  transform: scale(1.03);
  animation-play-state: paused;
}

@keyframes scroll-left {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}


@keyframes scrollLeft {
  0% {
    transform: translateX(0%);
  }
  100% {
    transform: translateX(-50%);
  }
}
.sticky-info {
  position: sticky;
  top: 0;
  align-self: flex-start;
  z-index: 2;
}

/* Applies on all pages */
coretex-header {
  background-color: transparent;
  transition: background-color 0.4s ease;
  position: relative;
  z-index: 10;
}

coretex-header:hover {
  background-color: transparent;
}

coretex-header:hover::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 160px;
  background: linear-gradient(to bottom, rgba(239, 239, 239, 1), rgba(239, 239, 239, 0));
  z-index: -1;
  pointer-events: none;
  transition: opacity 0.4s ease;
  opacity: 1;
}

coretex-header::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 150px;
  background: linear-gradient(to bottom, rgba(239, 239, 239, 1), rgba(239, 239, 239, 0));
  opacity: 0;
  transition: opacity 0.4s ease;
  pointer-events: none;
  z-index: -1;
}

/* Horizontal scroll styling for featured collection */
.scroll-carousel .grid {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 2rem;
  scroll-snap-type: x mandatory;
  padding-bottom: 2rem;
}

  .scroll-carousel .grid__item {
    flex: 0 0 50% !important;
    width: 50% !important;
    scroll-snap-align: start;
  }
}

/* Optional: Hide scrollbar */
.scroll-carousel .grid::-webkit-scrollbar {
  display: none;
}
.scroll-carousel .grid {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
/* 🔧 Remove double underline from mobile menu titles */
.drawer-header h2,
.menuPrimary summary {
  border: none !important;
  text-align: left !important;
  justify-content: flex-start !important;
}

/* 🔧 Full Mobile Menu Alignment + No Underlines */
@media screen and (max-width: 768px) {
  /* REMOVE double underline from summaries */
  coretex-drawer summary.button.is-custom {
    border: none !important;
    text-decoration: none !important;
  }

  /* ALIGN all list items properly */
  coretex-drawer .menuPrimary li.bdotfx {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    text-align: left !important;
    width: 100% !important;
    padding: 0 1.5rem !important;
  }

  /* ALIGN links inside list items */
  coretex-drawer .menuPrimary li a {
    display: inline-block !important;
    text-align: left !important;
    width: auto !important;
    flex-grow: 1;
  }

  /* ALIGN summaries (SHOP, OOO...) */
  coretex-drawer summary.button.is-custom {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 0 1.5rem !important;
    text-align: left !important;
    width: 100% !important;
    gap: 1rem;
  }

  /* ALIGN chevron icons */
  coretex-drawer summary.button.is-custom i {
    margin-left: auto !important;
  }

  /* REMOVE any hover lines or decoration */
  coretex-drawer summary.button.is-custom::before,
  coretex-drawer summary.button.is-custom::after {
    display: none !important;
    content: none !important;
  }

  /* FIX ul alignment */
  coretex-drawer .menuPrimary[x-flex][direction-s="column"],
  coretex-drawer .menuContent nav.menuPrimary ul[data-level="1"] {
    align-items: flex-start !important;
  }
}
@media screen and (max-width: 768px) {
  .scroll-snap li[scroll-slide] > * {
    width: 100% !important;
    max-width: 100% !important;
  }
  drawer-footer.sticky-bottom {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  visibility: hidden !important;
}
  /* Optional: make product image scale better */
  .scroll-snap li[scroll-slide] img {
    max-width: 100%;
    height: auto;
  }
}
horizontal-rule,
horizontal-rule.custom-separator {
  display: block !important;
  height: 0.5px !important;
  width: 100% !important;
  background-color: #1e1e1e !important; /* Or your brand color */
  margin: 1rem 0 !important; /* ⬅ Equal spacing above & below */
  opacity: 1 !important;
}
@media screen and (max-width: 749px) {
  .etheryx-product-media > .kontainer {
    transform: none !important;
    margin: 0 auto;
  }
}
@media (max-width: 777px) {
  .product-page[layout="diptych"] .etheryx-product-options .kontainer {
    padding-inline: 5vw;
  }
}
/* Size guide: override skelet.css x-cell:has(svg) { flex-shrink: 0 } which
   prevents the cell from shrinking, causing it to overflow the variant picker */
.product-page x-cell[id^="size-"] {
  flex-shrink: 1;
}

@media screen and (min-width: 1024px) {
  .product-page .kontainer {
    min-height: 100vh;
  }

  .product-page .etheryx-product-info.sticky-info {
    position: sticky;
    top: 0;
    will-change: transform;
  }
}

/* Featured collection: restore live theme scroll behavior.
   Etheryx 1.5.0 .listOfProds zeros out first/last child margins and uses
   padding-inline instead, but padding on overflow containers is unreliable.
   These rules restore margins and provide scroll layout before JS initializes. */
.feat-products ul[scroll-area] {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  gap: 2rem;
}
.feat-products ul[scroll-area] > li {
  flex: 0 0 auto;
  width: var(--prodCardSlideRatio, 250px);
}
.feat-products ul[scroll-area] > li:first-child {
  margin-inline-start: var(--layoutInline);
}
.feat-products ul[scroll-area] > li:last-child {
  margin-inline-end: var(--layoutInline);
}

.product-card .title a,
.product-card .title {
  font-weight: 500 !important;
}
.product-card .meta.onHover-m {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* ========================================
   NOLOGO Newsletter Popup (#nlg-signup)
   ======================================== */

#nlg-signup::backdrop {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

#nlg-signup {
  background: #fff;
  border: none;
  border-radius: 0;
  box-shadow: 0 4px 40px rgba(0, 0, 0, 0.08);
  padding: 0;
  max-width: 420px;
  width: 90vw;
  margin: auto;
}

.nlg-signup-close {
  align-self: flex-end;
  background: none;
  border: none;
  padding: 0;
  margin: 0 0 -12px 0;
  cursor: pointer;
  opacity: 0.4;
  transition: opacity 0.2s;
  line-height: 0;
}
.nlg-signup-close:hover {
  opacity: 1;
}

.nlg-signup-body {
  padding: 34px 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
@media (max-width: 749px) {
  .nlg-signup-body {
    padding: 32px 12px;
  }
}

.nlg-signup-heading {
  font-size: 22px;
  font-weight: 500;
  letter-spacing: normal;
  color: #000;
  margin: 0;
  text-transform: uppercase;
}

.nlg-signup-description {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.nlg-signup-description p {
  font-size: 13px;
  line-height: 1.8;
  color: #666;
  font-weight: 400;
  margin: 0;
}

.nlg-signup-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.nlg-signup-input {
  width: 100%;
  padding: 14px 12px;
  border: 1px solid #d9d9d9;
  border-radius: var(--globalRadiusSafe, 2.4rem);
  background: #fff;
  font-size: 14px;
  font-family: inherit;
  color: #000;
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
  margin: 0 !important;
}
.nlg-signup-input::placeholder { color: #999; }
.nlg-signup-input:focus { border-color: #3C4035; }
.nlg-signup-input--error { border-color: #c00; }

.nlg-signup-btn {
  width: 100% !important;
  padding: 14px 12px !important;
  background: #3C4035 !important;
  color: #f5f5f5 !important;
  border: none !important;
  border-radius: var(--globalRadiusSafe, 2.4rem) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  font-family: inherit !important;
  letter-spacing: 0.03em !important;
  text-transform: none !important;
  cursor: pointer;
  transition: background 0.2s;
}
.nlg-signup-btn:hover { background: #2a2d24 !important; }
.nlg-signup-btn:disabled { opacity: 0.6; cursor: not-allowed; }

.nlg-signup-disclaimer {
  font-size: 11px;
  line-height: 1.5;
  color: #999;
  margin: 0;
}
.nlg-signup-disclaimer a {
  color: #999;
  text-decoration: underline;
}
.nlg-signup-disclaimer a:hover {
  color: #666;
}

.nlg-signup-status { text-align: center; padding: 8px 0; }
.nlg-signup-status--error p { color: #c00; font-size: 13px; margin: 0; }
.nlg-signup-status--success p { color: #3C4035; font-size: 15px; font-weight: 500; margin: 0; }

/* ========================================
   NOLOGO Global Overrides
   ======================================== */

/* Kill focus-visible outlines site-wide */
*:focus-visible { outline: none !important; box-shadow: none !important; }

/* Announcement bar: no borders, no rounded corners */
[class*="nlg-ticker"],
[class*="ai-ticker-banner"] {
  border: none !important;
  border-radius: 0 !important;
}

/* Header blocks section: no borders, no rounded corners */
.shopify-section-header-group [class*="_blocks"] {
  border: none !important;
  border-radius: 0 !important;
}

/* Cookie consent banner: border already removed at source (#shopify-pc__banner) */

/* Product price color */
.prod-price,
.c-price,
.price {
  color:#3D4136 !important; /* lighter grey tone */
}
/* Main menu items */
coretex-drawer nav.menuPrimary a,
coretex-drawer nav.menuPrimary summary {
  color: #3D4136 !important; /* Replace with your desired color */
}

/* Sub-menu items */
coretex-drawer nav.menuPrimary details-menu a {
  color: #3D4136 !important; /* Same color or different if you want */
}

/* Optional: arrow icons and close icon */
coretex-drawer summary::after,
coretex-drawer .close {
  color: #3D4136 !important;
}
/* Cart icon and text color match menu color */
coretex-header .cartBubble,
coretex-header .cartBubble * {
  color: #3D4136 !important;
}

@media screen and (max-width: 768px) {
  coretex-drawer summary.button.is-custom {
    padding: 0 !important;
    margin: 0 !important;
    text-align: left !important;
    width: 100% !important;
  }

  coretex-drawer summary.button.is-custom i,
  coretex-drawer summary.button.is-custom svg {
    margin-left: auto !important;
  }

  coretex-drawer .menuPrimary .no-style.inside > li {
    justify-content: flex-start !important;
    text-align: left !important;
    padding-left: 0 !important;
  }
}
/* Apply tighter spacing ONLY for  items */
@media screen and (max-width: 768px) {
  coretex-drawer ul[data-level="2"] > li.bdotfx {
    margin-bottom: 0rem !important; /* adjust spacing */
    padding: 0rem !important; /* horizontal alignment still clean */
  }

  /* Optional: make sure top-level items keep their spacing */
  coretex-drawer ul[data-level="1"] > li.bdotfx {
    margin-bottom: 3rem !important;
  }
}
/* Reduce bottom spacing AFTER a submenu */
coretex-drawer .menuPrimary li:has(details[open]) {
  margin-bottom: 0rem !important;
  padding-bottom: 0 !important;
}
details.lv1 > summary {
  touch-action: manipulation;
  cursor: pointer;
}
details.lv1[open] > summary::after {
  transform: rotate(90deg); /* Optional arrow animation */
}
.product-color {
  font-weight: 400 !important;
  font-family: var(--fontFamily);
  opacity: 0.55;
}
.product-info-tabs details[open] > details-content {
  max-height: 500px;
  opacity: 1;
  transition: max-height 0.4s ease, opacity 0.3s ease;
}

.product-info-tabs details > details-content {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.3s ease;
}
.custom-size-chart.open {
  max-height: 300px;
}
/* Make the product info stick a bit earlier so it doesn't slide up */
x-cell.etheryx-product-info.sticky-info,
x-cell.etheryx-product-info.sticky-info > x-flex.kontainer {
  position: sticky !important;
  top: -14px !important;   /* tweak: -10px to -20px usually kills the 1cm nudge */
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* === Klaviyo Back In Stock form (PDP) === */
.nlg-bis-wrapper {
  margin-top: 12px;
}

.nlg-bis-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-start;
}

.nlg-bis-email,
.nlg-bis-btn {
  width: 280px !important;
  padding: 14px 20px !important;
  font-size: 14px !important;
  font-family: inherit !important;
  border-radius: var(--globalRadiusSafe, 2.4rem) !important;
  box-sizing: border-box !important;
}

.nlg-bis-email {
  height: 42px !important;
  margin: 1px !important;
  border: 1px solid #d9d9d9 !important;
  border-radius: var(--globalRadiusSafe, 2.4rem) !important;
  background: var(--inputBg) !important;
  color: var(--inputColor) !important;
  font-size: var(--inputFontSize) !important;
  font-weight: 400;
  outline: none !important;
  transition: border-color 0.2s;
}
.nlg-bis-email::placeholder { color: #999; }
.nlg-bis-email:focus { border-color: #3C4035 !important; }
.nlg-bis-email.nlg-input-error { border-color: #c00 !important; }

.nlg-bis-btn {
  background: #3C4035;
  color: #f5f5f5;
  border: none;
  font-weight: 700;
  letter-spacing: 0.03em;
  cursor: pointer;
  transition: background 0.2s;
  text-transform: none;
}
.nlg-bis-btn:hover { background: #2a2d24; }
.nlg-bis-btn:disabled { opacity: 0.6; cursor: not-allowed; }

/* Suppress focus-within outline on variant labels (mouse click) */
.product-page .toggle-token.custom label:focus-within {
  outline: none;
  box-shadow: none;
}

/* Checked variant: underline indicator instead of ring */
.product-page .toggle-token.custom label:has(input:checked) {
  border-color: transparent;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Fully hide the radio input visually */
.product-page .toggle-token.custom input[type="radio"] {
  clip-path: inset(50%);
  box-shadow: none;
  outline: none;
}

.product-page .product-form x-flex[ai="center"] {
  align-items: flex-start !important;
}

.product-page .add-2-cart {
  width: 280px !important;
  padding: 14px 12px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  box-sizing: border-box !important;
}

.nlg-bis-status { text-align: left; padding: 8px 0; max-width: 280px; }
.nlg-bis-error p { color: #c00; font-size: 13px; margin: 0; }
.nlg-bis-success p { color: #3C4035; font-size: 11.9px; font-weight: 500; margin: 0; }
