Skip to content
  • Home
  • Contact
  • Cosmic Realm
  • Gentle Realm
  • About
  • Home
  • Contact
  • Cosmic Realm
  • Gentle Realm
  • About
  • Account

    Other sign in options Sign in
    • Orders
    • Profile

    Account

    Other sign in options Sign in
    • Orders
    • Profile

    Your cart is empty

    Have an account? Log in to check out faster.

    Continue shopping

    Gentle Realms

    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)
    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)
    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)
    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)
    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)
    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)

    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)

    AELORIA — The Dawnkeeper | Limited Edition Mythic Canvas (1 of 10, 16×24 Framed)

    $777.00 USD
    AURELITH — The Amethyst Warden | Limited Edition Mythic Canvas (1 of 100, 16×24 Framed)
    AURELITH — The Amethyst Warden | Limited Edition Mythic Canvas (1 of 100, 16×24 Framed)
    AURELITH — The Amethyst Warden | Limited Edition Mythic Canvas (1 of 100, 16×24 Framed)
    AURELITH — The Amethyst Warden | Limited Edition Mythic Canvas (1 of 100, 16×24 Framed)

    AURELITH — The Amethyst Warden | Limited Edition Mythic Canvas (1 of 100, 16×24 Framed)

    AURELITH — The Amethyst Warden | Limited Edition Mythic Canvas (1 of 100, 16×24 Framed)

    $222.00 USD
    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)
    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)
    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)
    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)
    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)
    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)

    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)

    KAELITH — The Solar Sentinel | Limited Edition Mythic Canvas (1 of 50, 16×24 Framed)

    $333.00 USD

    Join Our Journey

    Subscribe for insights into our curated world of art.

    © 2026 Canvas Enchanted Studio Art, Powered by Shopify
    • Privacy policy
    • Refund policy
    • Terms of service
    • Shipping policy
    • Contact information
    Instagram
    Youtube
    Tiktok
    Twitter
    Threads

    Search

    Products

    • .video-placeholder-wrapper__poster-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 50%; display: flex; align-items: center; justify-content: center; } .deferred-media__poster-icon svg, .video-placeholder-wrapper__poster-icon svg { width: var(--button-size); height: var(--button-size); color: var(--color-white); filter: drop-shadow(var(--shadow-button)); &:hover { color: rgb(var(--color-white-rgb) / var(--opacity-80)); } @media screen and (min-width: 750px) { width: 4rem; height: 4rem; } } deferred-media[class] :is(.deferred-media__poster-button img, .deferred-media__poster-button ~ video) { /* only apply this on the video block not product media */ object-fit: cover; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } .button-shopify-xr { width: 100%; display: flex; justify-content: center; align-items: center; padding: var(--padding-md); } .button-shopify-xr > svg { width: var(--icon-size-sm); height: var(--icon-size-sm); margin-inline-end: var(--margin-md); } .button-shopify-xr[data-shopify-xr-hidden] { display: none; } /* Swatches */ .swatch { --color-border: rgb(var(--color-foreground-rgb) / var(--style-border-swatch-opacity)); --min-width-unitless: 15.9999; /* want to avoid division by 0 */ --min-height-unitless: 15.9999; /* want to avoid division by 0 */ --min-height: 16px; --min-width: 16px; /* mobile values */ --scaling-factor: 0.5; --max-swatch-size: 28px; --max-pill-size: 20px; --max-filter-size: 32px; /* From the settings */ --offset-swatch-width: calc(var(--variant-picker-swatch-width-unitless) - var(--min-width-unitless)); --offset-swatch-height: calc(var(--variant-picker-swatch-height-unitless) - var(--min-height-unitless)); /** Offset values are obtained from the following formulas: offset-width = width - min-width offset-height = height - min-height The offset-scaled-width and heigth are obtained by extending the line from [min,min] to [W,H] and taking the intersection with a square that starts at [min,min] and ends at [max,max]. The extending line forms right angle triangles with the [min,min]->[max,max] box that enable us to derive the following formulas We also want the result to always be smaller than the input (pdp > everywhere else) by some scaling factor. */ --offset-scaled-width: calc( var(--scaling-factor) * var(--offset-swatch-width) / var(--offset-swatch-height) * var(--offset-max-swatch-size) ); --offset-scaled-height: calc( var(--scaling-factor) * var(--offset-swatch-height) / var(--offset-swatch-width) * var(--offset-max-swatch-size) ); --offset-max-swatch-size: calc(var(--max-swatch-size) - var(--min-width)); /* width = min(m + sU, (m + s * W'/H' * M'), M) */ --swatch-width: min( calc(var(--min-width) + var(--scaling-factor) * var(--offset-swatch-width) * 1px), calc(var(--min-width) + var(--offset-scaled-width)), var(--max-swatch-size) ); /* height = min(m + sV, (m + s * H'/W' * M'), M) */ --swatch-height: min( calc(var(--min-height) + var(--scaling-factor) * var(--offset-swatch-height) * 1px), calc(var(--min-height) + var(--offset-scaled-height)), var(--max-swatch-size) ); display: block; background: var(--swatch-background); background-position: var(--swatch-focal-point, center); border-radius: var(--variant-picker-swatch-radius); border: var(--style-border-swatch-width) var(--style-border-swatch-style) var(--color-border); width: var(--swatch-width); height: var(--swatch-height); /* This is different than `background-size: cover` because we use `box-sizing: border-box`, * doing it like makes the background clip under the border without repeating. */ background-size: var(--swatch-width) var(--swatch-height); &.swatch--unavailable { border-style: dashed; } &.swatch--unscaled { /* for when you want fixed sizing (e.g. pdp) */ --swatch-width: var(--variant-picker-swatch-width); --swatch-height: var(--variant-picker-swatch-height); } &.swatch--filter { --swatch-width: var(--max-filter-size); --swatch-height: var(--max-filter-size); border-radius: var(--variant-picker-swatch-radius); } &.swatch--pill { --swatch-width: var(--max-pill-size); --swatch-height: var(--max-pill-size); border-radius: var(--variant-picker-swatch-radius); } /* swatches in filters and pills always have a border */ &.swatch--filter, &.swatch--pill { --style-border-swatch-width: var(--variant-picker-border-width); --style-border-swatch-style: var(--variant-picker-border-style); --color-border: rgb(var(--color-foreground-rgb) / var(--variant-picker-border-opacity)); } &.swatch--variant-image { background-size: cover; } @media screen and (min-width: 750px) { /* desktop values */ --max-swatch-size: 32px; --max-pill-size: 16px; --max-filter-size: 28px; --scaling-factor: 0.65; } } .variant-picker .variant-option--buttons label:has(.swatch) { border-radius: var(--variant-picker-swatch-radius); } .sticky-content { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } @media screen and (min-width: 750px) { .sticky-content--desktop, .sticky-content--desktop.full-height--desktop > .group-block { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } } .price, .compare-at-price, .unit-price { white-space: nowrap; } .unit-price { display: block; font-size: min(0.85em, var(--font-paragraph--size)); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } .tax-note.tax-note.tax-note { font-size: min(0.85em, var(--font-paragraph--size)); font-weight: var(--font-paragraph--weight); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } product-price.text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) > *:not(.tax-note) { margin-block: 0; } .compare-at-price { opacity: 0.4; text-decoration-line: line-through; text-decoration-thickness: 1.5px; } .card-gallery { position: relative; } @container (max-width: 70px) { .card-gallery:hover .quick-add__button { display: none; } } /* Drawer */ .drawer { background-color: var(--color-background); position: fixed; top: 0; left: 0; bottom: 0; width: var(--sidebar-width); z-index: var(--layer-raised); transform: translateX(-120%); transition: transform var(--animation-speed) var(--animation-easing); } .drawer[data-open='true'] { transform: translateX(0); } .drawer-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; } .drawer__header { display: flex; justify-content: space-between; align-items: center; padding: var(--drawer-header-block-padding) var(--drawer-inline-padding); } .drawer__title { font-size: var(--font-h2--size); margin: 0; } .drawer__close { width: var(--minimum-touch-target); height: var(--minimum-touch-target); } .drawer__content { display: block; padding: var(--drawer-content-block-padding) var(--drawer-inline-padding); width: 100%; } /* Background overlay */ .background-overlay { position: relative; &::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--background-overlay-color, rgb(0 0 0 / 15%)); } } /* Spacing style */ .spacing-style { --spacing-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --spacing-scale: var(--spacing-scale-default); } /* Must disable this, when you use these with calc and another unit type, things break — see logo.liquid */ /* stylelint-disable length-zero-no-unit */ --padding-block: 0px; --padding-block-start: var(--padding-block, 0px); --padding-block-end: var(--padding-block, 0px); --padding-inline: 0px; --padding-inline-start: var(--padding-inline, 0px); --padding-inline-end: var(--padding-inline, 0px); --margin-block: 0px; --margin-block-start: var(--margin-block, 0px); --margin-block-end: var(--margin-block, 0px); --margin-inline: 0px; --margin-inline-start: var(--margin-inline, 0px); --margin-inline-end: var(--margin-inline, 0px); } .spacing-style, .inherit-spacing { padding-block: calc(var(--padding-block-start) + var(--section-top-offset, 0px)) var(--padding-block-end); padding-inline: var(--padding-inline-start) var(--padding-inline-end); margin-block: var(--margin-block-start) var(--margin-block-end); margin-inline: var(--margin-inline-start) var(--margin-inline-end); } /* Size style */ .size-style { width: var(--size-style-width-mobile, var(--size-style-width)); height: var(--size-style-height-mobile, var(--size-style-height)); @media screen and (min-width: 750px) { width: var(--size-style-width); height: var(--size-style-height); } } /* Custom Typography style */ .custom-typography, .custom-typography > * { font-family: var(--font-family); font-weight: var(--font-weight); text-transform: var(--text-transform); text-wrap: var(--text-wrap); line-height: var(--line-height); letter-spacing: var(--letter-spacing); } .custom-typography { h1 { line-height: var(--line-height--display, var(--line-height)); } h2, h3, h4 { line-height: var(--line-height--heading, var(--line-height)); } p { line-height: var(--line-height--body, var(--line-height)); } } .custom-font-size, .custom-font-size > * { font-size: var(--font-size); } .custom-font-weight, .custom-font-weight > * { font-weight: var(--weight); } /* Border override style */ .border-style { border-width: var(--border-width); border-style: var(--border-style); border-color: var(--border-color); border-radius: var(--border-radius); } /* Gap scaling style */ .gap-style, .layout-panel-flex { --gap-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --gap-scale: var(--spacing-scale-default); } } .layout-panel-flex { display: flex; gap: var(--gap); height: 100%; } .layout-panel-flex--row { flex-flow: row var(--flex-wrap); justify-content: var(--horizontal-alignment); align-items: var(--vertical-alignment); } .layout-panel-flex--column { flex-flow: column var(--flex-wrap); align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment); } @media screen and (max-width: 749px) { .mobile-column { flex-flow: column nowrap; align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment-mobile); } .layout-panel-flex--row:not(.mobile-column) { flex-wrap: var(--flex-wrap-mobile); > .menu { flex: 1 1 min-content; } > .text-block { flex: 1 1 var(--max-width--display-tight); } > .image-block { flex: 1 1 var(--size-style-width-mobile-min); } > .button { flex: 0 0 fit-content; } } } @media (min-width: 750px) { .layout-panel-flex { flex-direction: var(--flex-direction); } } /* Form fields */ .field { position: relative; width: 100%; display: flex; transition: box-shadow var(--animation-speed) ease; } .field__input { flex-grow: 1; text-align: left; border-radius: var(--style-border-radius-inputs); transition: box-shadow var(--animation-speed) ease, background-color var(--animation-speed) ease; padding: var(--input-padding); box-shadow: var(--input-box-shadow); background-color: var(--color-input-background); color: var(--color-input-text); border: none; outline: none; font-size: var(--font-paragraph--size); &:autofill { background-color: var(--color-input-background); color: var(--color-input-text); } } .field__input:is(:focus, :hover) { box-shadow: var(--input-box-shadow-focus); background-color: var(--color-input-hover-background); } .field__input--button-radius { border-radius: var(--style-border-radius-buttons-primary); } .field__input--button-padding { padding-inline: var(--padding-3xl); } .field__label { color: rgb(var(--color-input-text-rgb) / var(--opacity-80)); font-size: var(--font-paragraph--size); left: var(--input-padding-x); top: 50%; transform: translateY(-50%); margin-bottom: 0; pointer-events: auto; position: absolute; transition: top var(--animation-speed) ease, font-size var(--animation-speed) ease; } /* RTE styles */ .rte, .shopify-policy__title { :is(h1, h2, h3, h4, h5, h6) { margin-block: clamp(1.5rem, 1em * 3.3, 2.5rem) clamp(1rem, 1em * 0.25, 2rem); } :first-child:is(p, h1, h2, h3, h4, h5, h6), :first-child:empty + :is(p, h1, h2, h3, h4, h5, h6) { margin-block-start: 0; } ul, ol { margin-block-start: 0; padding-inline-start: 1.5em; } /* Only apply margin-block-end to the higher level list, not nested lists */ :is(ul, ol):not(:is(ul, ol) :is(ul, ol)) { margin-block-end: 1em; } blockquote { margin-inline: 1.5em 2.3em; margin-block: 3.8em; padding-inline-start: 0.8em; border-inline-start: 1.5px solid rgb(var(--color-foreground-rgb) / var(--opacity-25)); font-style: italic; font-weight: 500; } .rte-table-wrapper { overflow-x: auto; } table { /* stylelint-disable-next-line declaration-no-important */ width: 100% !important; border-collapse: collapse; } tr:not(:has(td)), thead { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5)); font-weight: bold; text-transform: uppercase; } tr:has(td) { border-bottom: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-10)); } th, td { text-align: start; padding-inline: var(--padding-md); padding-block: var(--padding-sm); } } .shopify-policy__container { padding-block: var(--padding-xl); } .checkbox { --checkbox-size: 22px; --checkbox-top: 50%; --checkbox-left: 1.5px; --checkbox-offset: 3px; --checkbox-border-radius: 7px; --checkbox-label-padding: 8px; --checkbox-path-opacity: 0; --checkbox-cursor: pointer; --checkbox-border: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55)); position: relative; display: flex; align-items: center; @media screen and (min-width: 750px) { --checkbox-size: 16px; --checkbox-border-radius: 5px; --checkbox-label-padding: 6px; } &:has(.checkbox__input:checked) { --checkbox-path-opacity: 1; } &.checkbox--disabled { --checkbox-cursor: not-allowed; } } .checkbox__input { position: absolute; opacity: 0; margin: 0; width: var(--checkbox-size); height: var(--checkbox-size); /* Outline is on the SVG instead, to allow it to have border-radius */ &:focus-visible { outline: none; } &:focus-visible + .checkbox__label .icon-checkmark { outline: var(--focus-outline-width) solid currentcolor; outline-offset: var(--focus-outline-offset); } &:checked + .checkbox__label .icon-checkmark { background-color: var(--color-foreground); border-color: var(--color-foreground); } &:disabled + .checkbox__label .icon-checkmark { background-color: var(--input-disabled-background-color); border-color: var(--input-disabled-border-color); } } .checkbox__label { position: relative; display: inline-flex; cursor: var(--checkbox-cursor); line-height: var(--checkbox-size); min-width: var(--minimum-touch-target); } .checkbox .icon-checkmark { height: var(--checkbox-size); width: var(--checkbox-size); flex-shrink: 0; border: var(--checkbox-border); border-radius: var(--checkbox-border-radius); background-color: var(--color-background); } .checkbox__label-text { padding-inline-start: var(--checkbox-label-padding); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .checkbox .icon-checkmark path { stroke: var(--color-background); opacity: var(--checkbox-path-opacity); transition: opacity var(--animation-speed) var(--animation-easing); } .checkbox__input:disabled + .checkbox__label { color: var(--input-disabled-text-color); } /* Add to cart button */ .button[id^='BuyButtons-ProductSubmitButton-'] { position: relative; overflow: hidden; } /* Cart bubble */ .cart-bubble { --cart-padding: 0.2em; position: relative; width: 20px; aspect-ratio: 1; border-radius: 50%; border-width: 0; display: flex; line-height: normal; align-items: center; justify-content: center; color: var(--color-primary-button-text); padding-inline: var(--cart-padding); } .cart-bubble__background { position: absolute; inset: 0; background-color: var(--color-primary-button-background); border-radius: var(--style-border-radius-lg); } .cart-bubble__text { font-size: var(--font-size--3xs); z-index: var(--layer-flat); line-height: 1; display: flex; align-items: center; justify-content: center; } /* Quantity selector */ .quantity-selector { --quantity-selector-width: 124px; display: flex; justify-content: space-between; align-items: center; color: var(--color-input-text); background-color: var(--color-input-background); border: var(--style-border-width-inputs) solid var(--color-input-border); border-radius: var(--style-border-radius-inputs); flex: 1 1 var(--quantity-selector-width); align-self: stretch; transition: background-color var(--animation-speed) var(--animation-easing); &:hover { background-color: var(--color-input-hover-background); } } .product-form-buttons:has(.add-to-cart-button.button-secondary) .quantity-selector { border-radius: var(--style-border-radius-buttons-secondary); } .quantity-selector :is(.quantity-minus, .quantity-plus) { /* Unset button styles */ padding: 0; background: transparent; box-shadow: none; display: flex; justify-content: center; align-items: center; cursor: pointer; width: var(--minimum-touch-target); height: var(--minimum-touch-target); flex-shrink: 0; color: var(--color-input-text); } .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-inputs); border-end-start-radius: var(--style-border-radius-inputs); } .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-inputs); border-end-end-radius: var(--style-border-radius-inputs); } .product-details .quantity-selector { border-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-buttons-primary); border-end-start-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-buttons-primary); border-end-end-radius: var(--style-border-radius-buttons-primary); } .quantity-selector .svg-wrapper { transition: transform var(--animation-speed) var(--animation-easing); } .quantity-selector svg { width: var(--icon-size-xs); height: var(--icon-size-xs); } :is(.quantity-minus, .quantity-plus):active .svg-wrapper { transform: scale(0.9); } .quantity-selector input[type='number'] { margin: 0; text-align: center; border: none; appearance: none; max-width: calc(var(--quantity-selector-width) - var(--minimum-touch-target) * 2); border-radius: var(--style-border-radius-buttons); color: var(--color-input-text); background-color: transparent; } /* Chrome, Safari, Edge, Opera */ .quantity-selector input[type='number']::-webkit-inner-spin-button, .quantity-selector input[type='number']::-webkit-outer-spin-button { appearance: none; } /* Firefox */ .quantity-selector input[type='number'] { appearance: textfield; } /* Pills (used in facets and predictive search) */ .pills__pill { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15)); color: var(--color-foreground); display: flex; justify-content: space-between; align-items: center; gap: var(--gap-sm); min-width: 48px; padding: 6px 12px; border-radius: var(--style-border-radius-pills); cursor: pointer; background-color: var(--pills-pill-background-color); transition: background-color var(--animation-speed) var(--animation-easing); &:hover { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); } @media screen and (max-width: 749px) { padding: var(--padding-xs) var(--padding-md); } } .pills__pill > .svg-wrapper { --close-icon-opacity: 0.4; --icon-stroke-width: 1px; color: var(--color-foreground); } .pills__pill--swatch { @media screen and (max-width: 749px) { padding-inline-start: var(--padding-sm); } } .pills__pill--swatch .swatch { margin-right: -4px; } .pills__pill--desktop-small { @media screen and (min-width: 750px) { font-size: var(--font-size--xs); } } /* Fly to cart animation */ fly-to-cart { --offset-y: 10px; position: fixed; width: var(--width, 40px); height: var(--height, 40px); left: 0; top: 0; z-index: calc(infinity); pointer-events: auto; border-radius: var(--style-border-radius-buttons-primary); overflow: hidden; object-fit: cover; background-size: cover; background-position: center; opacity: 0; background-color: var(--color-foreground); translate: var(--start-x, 0) var(--start-y, 0); transform: translate(-50%, -50%); animation-name: travel-x, travel-y, travel-scale; animation-timing-function: var(--x-timing), var(--y-timing), var(--scale-timing); animation-duration: 0.6s; animation-composition: accumulate; animation-fill-mode: both; } fly-to-cart.fly-to-cart--main { --x-timing: cubic-bezier(0.7, -5, 0.98, 0.5); --y-timing: cubic-bezier(0.15, 0.57, 0.9, 1.05); --scale-timing: cubic-bezier(0.85, 0.05, 0.96, 1); } fly-to-cart.fly-to-cart--quick { --x-timing: cubic-bezier(0, -0.1, 1, 0.32); --y-timing: cubic-bezier(0, 0.92, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); animation-duration: 0.6s; } fly-to-cart.fly-to-cart--sticky { --x-timing: cubic-bezier(0.98, -0.8, 0.92, 0.5); --y-timing: cubic-bezier(0.14, 0.56, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); --radius: var(--style-border-radius-buttons-primary); @media (max-width: 749px) { --x-timing: cubic-bezier(0.98, -0.1, 0.92, 0.5); } animation-duration: 0.8s; } @keyframes travel-scale { 0% { opacity: var(--start-opacity, 1); } 5% { opacity: 1; } 100% { border-radius: 50%; opacity: 1; transform: translate(-50%, calc(-50% + var(--offset-y))) scale(0.25); } } @keyframes travel-x { to { translate: var(--travel-x, 0) 0; } } @keyframes travel-y { to { translate: 0 var(--travel-y, 0); } } /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* Animation declarations - to be kept at the bottom of the file for ease of find */ @keyframes grow { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } @keyframes move-and-fade { from { transform: translate(var(--start-x, 0), var(--start-y, 0)); opacity: var(--start-opacity, 0); } to { transform: translate(var(--end-x, 0), var(--end-y, 0)); opacity: var(--end-opacity, 1); } } @keyframes slideInTopViewTransition { from { transform: translateY(100px); } } @keyframes elementSlideInTop { from { margin-top: var(--padding-sm); opacity: 0; } to { margin-top: 0; opacity: 1; } } @keyframes elementSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } @keyframes elementSlideInBottom { from { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes elementSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } } @keyframes thumbnailsSlideInTop { from { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } to { transform: translateY(-50%); opacity: 1; } } @keyframes thumbnailsSlideOutTop { from { transform: translateY(-50%); opacity: 1; } to { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } } @keyframes thumbnailsSlideInBottom { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes thumbnailsSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(100%); opacity: 0; } } @keyframes search-element-slide-in-bottom { 0% { transform: translateY(20px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes search-element-slide-out-bottom { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(20px); opacity: 0; } } @keyframes dialogZoom { from { opacity: 1; transform: scale(1) translateY(0); } to { opacity: 0; transform: scale(0.95) translateY(1em); } } @keyframes thumbnail-selected { 0%, 100% { box-shadow: 0 0 0 2px transparent; scale: 0.9; } 50% { box-shadow: 0 0 0 2px #000; scale: 1; } } @keyframes backdropFilter { from { backdrop-filter: brightness(1); } to { backdrop-filter: brightness(0.75); } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes modalSlideInTop { from { transform: translateY(var(--padding-sm)); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes modalSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } .bubble { display: inline-flex; height: calc(var(--variant-picker-swatch-height) / 1.5); font-size: var(--font-size--xs); border-radius: 20px; min-width: 20px; padding: 0 6px; background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); color: var(--color-foreground); align-items: center; justify-content: center; } .bubble svg { width: 12px; height: 12px; } .top-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(-50px 0 0 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .top-shadow--mobile::before { display: none; } } .bottom-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(0 0 -50px 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .bottom-shadow--mobile::before { display: none; } } .video-placeholder-wrapper { position: relative; width: 100%; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } :not(deferred-media) > .video-placeholder-wrapper { width: var(--video-placeholder-width); } .video-placeholder-wrapper > * { width: 100%; height: 100%; object-fit: cover; object-position: center; } /* * Slideshow Component */ slideshow-component { --cursor: grab; --slide-offset: 6px; position: relative; display: flex; flex-direction: column; timeline-scope: var(--slideshow-timeline); } slideshow-component.slideshow--content-below-media slideshow-slide { display: grid; } .slideshow--content-below-media slideshow-slide :is(.slide__image-container, .slide__content) { position: static; } .slideshow--content-below-media slideshow-slide { grid-template-rows: var(--grid-template-rows); @media screen and (min-width: 750px) { grid-template-rows: var(--grid-template-rows-desktop); } } .slide__content { opacity: 0; animation: slide-reveal both linear; animation-timeline: var(--slideshow-timeline); @media (prefers-reduced-motion) { opacity: 1; animation: none; } } .slideshow--single-media { --cursor: default; } a slideshow-component { --cursor: pointer; } /* * Slideshow Slides */ slideshow-slides { width: 100%; position: relative; display: flex; overflow-x: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-color: transparent transparent; scrollbar-width: none; gap: var(--slideshow-gap, 0); cursor: var(--cursor); min-height: var(--slide-min-height); @media (prefers-reduced-motion) { scroll-behavior: auto; } &::-webkit-scrollbar { width: 0; } &::-webkit-scrollbar-track { background: transparent; } &::-webkit-scrollbar-thumb { background: transparent; border: none; } @media screen and (min-width: 750px) { min-height: var(--slide-min-height-desktop); } } slideshow-component[disabled='true'] slideshow-slides { overflow: hidden; } slideshow-component[mobile-disabled] slideshow-slides { @media screen and (max-width: 749px) { overflow: hidden; } } slideshow-slide { position: relative; scroll-snap-align: center; width: var(--slide-width, 100%); max-height: 100%; flex-shrink: 0; view-timeline-name: var(--slideshow-timeline); view-timeline-axis: inline; content-visibility: auto; contain-intrinsic-size: auto none; border-radius: var(--corner-radius, 0); overflow: hidden; slideshow-component[actioned] &, &[aria-hidden='false'] { content-visibility: visible; } slideshow-component slideshow-slide:not([aria-hidden='false']) { content-visibility: hidden; } &[hidden]:not([reveal]) { display: none; } /* Make inactive slides appear clickable */ &[aria-hidden='true'] { cursor: pointer; } } slideshow-slide .slide__image-container--rounded { border-radius: var(--corner-radius, 0); } slideshow-slide.product-media-container--tallest { content-visibility: visible; } @media screen and (max-width: 749px) { /* Media gallery has a peeking slide on the right side always, and on the left side when the current slide is the last one */ .media-gallery--hint :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']:last-of-type), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } } /* * Collection and Resource list carousels have peeking slides on both sides. * Card galleries preview the next or previous images on 'pointerenter', so we * try to kick load them beforehand (they are lazy loaded otherwise). */ :is(.resource-list__carousel, .card-gallery) :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } /* * Be specific about HTML children structure to avoid targeting nested slideshows. * Ensure that the content is 'visible' while scrolling instead of 'auto' to avoid issues in Safari. */ slideshow-component:is([dragging], [transitioning], :hover) > slideshow-container > slideshow-slides > slideshow-slide { content-visibility: visible; } slideshow-slides[gutters*='start'] { padding-inline-start: var(--gutter-slide-width, 0); scroll-padding-inline-start: var(--gutter-slide-width, 0); } slideshow-slides[gutters*='end'] { padding-inline-end: var(--gutter-slide-width, 0); } slideshow-component[dragging] { --cursor: grabbing; * { pointer-events: auto; } } slideshow-component[dragging] slideshow-arrows { display: none; } slideshow-container { width: 100%; display: block; position: relative; grid-area: container; container-type: inline-size; } @media screen and (min-width: 750px) { .media-gallery--carousel slideshow-component:has(slideshow-controls[thumbnails]) { &:has(slideshow-controls[pagination-position='right']) { display: grid; grid-template: 'container controls' auto 'arrows controls' min-content / 1fr auto; } &:has(slideshow-controls[pagination-position='left']) { display: grid; grid-template: 'controls container' auto 'controls arrows' min-content / auto 1fr; } slideshow-controls[pagination-position='left'] { order: -1; } } } /* Slideshow Play/Pause */ .slideshow-control:is(.icon-pause, .icon-play) { color: var(--color-active); &:hover { color: var(--color-hover); } svg { display: none; } } slideshow-component:is([autoplay]) { &:is([paused]) { .icon-play > svg { display: block; } } &:not([paused]) { .icon-pause > svg { display: block; } } } /* Slideshow Arrows */ slideshow-arrows { --cursor-previous: w-resize; --cursor-next: e-resize; position: absolute; inset: 0; display: flex; z-index: var(--layer-heightened); pointer-events: auto; mix-blend-mode: difference; align-items: flex-end; &[position='left'] { justify-content: flex-start; padding-inline: var(--padding-xs); } &[position='right'] { justify-content: flex-end; padding-inline: var(--padding-xs); } &[position='center'] { justify-content: space-between; align-items: center; } } slideshow-arrows:has(.slideshow-control--shape-square), slideshow-arrows:has(.slideshow-control--shape-circle) { mix-blend-mode: normal; } slideshow-component[disabled='true'] slideshow-arrows { display: none; } slideshow-arrows .slideshow-control { pointer-events: auto; opacity: 0; min-height: var(--minimum-touch-target); min-width: var(--minimum-touch-target); padding: 0 var(--padding-xs); color: var(--color-white); } slideshow-arrows .slideshow-control.slideshow-control--style-none { display: none; } .media-gallery--carousel slideshow-arrows .slideshow-control { padding-inline: 0 var(--padding-md); opacity: 1; } .card-gallery slideshow-arrows .slideshow-control { /* Align icons with quick-add button */ padding-inline: var(--padding-xl); @container (max-width: 249px) { padding-inline: 0 var(--padding-sm); } } :not(.media-gallery--carousel) > :is(slideshow-component:hover, slideshow-component:focus-within):not(:has(slideshow-controls:hover)) > slideshow-container > slideshow-arrows .slideshow-control { animation: arrowsSlideIn var(--animation-speed) var(--animation-easing) forwards; } @keyframes arrowsSlideIn { from { transform: translate(var(--padding-sm), 0); opacity: 0; } to { opacity: 1; } } @keyframes slide-reveal { 0% { translate: calc(var(--slideshow-slide-offset, 6) * 1rem) 0; opacity: 0; } 50% { opacity: 1; } 100% { translate: calc(var(--slideshow-slide-offset, 6) * -1rem) 0; opacity: 0; } } .block-resource-list { display: flex; flex-direction: column; row-gap: var(--gap); min-width: 0; min-height: 0; container-type: inline-size; container-name: resource-list; } .section-resource-list, .section-carousel { row-gap: var(--gap); } .section-resource-list__content { display: flex; flex-direction: column; align-items: var(--horizontal-alignment); gap: var(--gap); width: 100%; } .section-resource-list__content:empty { display: none; } .section-resource-list__header:is(:empty, :has(.group-block-content:empty)), .section-resource-list__content:empty { display: none; } .section-resource-list.section--full-width product-card-link > .group-block, .section-carousel.section--full-width product-card-link > .group-block { @media screen and (max-width: 749px) { padding-inline: max(var(--padding-xs), var(--padding-inline-start)) max(var(--padding-xs), var(--padding-inline-end)); } } .resource-list--carousel-mobile { display: block; @media screen and (min-width: 750px) { display: none; } } .resource-list { --resource-list-mobile-gap-max: 9999px; --resource-list-column-gap: min(var(--resource-list-column-gap-desktop), var(--resource-list-mobile-gap-max)); --resource-list-row-gap: min(var(--resource-list-row-gap-desktop), var(--resource-list-mobile-gap-max)); width: 100%; @media screen and (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } @container resource-list (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } } .resource-list--grid { display: grid; gap: var(--resource-list-row-gap) var(--resource-list-column-gap); grid-template-columns: var(--resource-list-columns-mobile); @media screen and (min-width: 750px) { grid-template-columns: var(--resource-list-columns); } @container resource-list (max-width: 449px) { grid-template-columns: var(--resource-list-columns-mobile); } @container resource-list(min-width: 450px) and (max-width: 749px) { --resource-list-columns-per-row: 3; grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); /* Avoid orphan in last row when there are 4, 7, or 10 items */ &:has(.resource-list__item:first-child:nth-last-child(3n + 1)), /* Clean two full rows when there are 8 items */ &:has(.resource-list__item:first-child:nth-last-child(8n)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 750px) { grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); &:has(.resource-list__item:first-child:nth-last-child(n + 9)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(n + 7):nth-last-child(-n + 8)) { --resource-list-columns-per-row: 4; } &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 3; } &:has(.resource-list__item:first-child:nth-last-child(5)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(-n + 4)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 1200px) { &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 6; } } } .resource-list__item { height: 100%; color: var(--color-foreground); text-decoration: none; } .resource-list__carousel { --slide-width: 60vw; width: 100%; position: relative; container-type: inline-size; container-name: resource-list-carousel; .slideshow-control[disabled] { display: none; } .slideshow-control--next { margin-inline-start: auto; } } @container resource-list-carousel (max-width: 749px) { .resource-list__carousel .resource-list__slide { --slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); } } @container resource-list-carousel (min-width: 750px) { .resource-list__carousel .resource-list__slide { --section-slide-width: calc( (100% - (var(--resource-list-column-gap) * (var(--column-count) - 1)) - var(--peek-next-slide-size)) / var(--column-count) ); --fallback-slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); --slide-width: var(--section-slide-width, var(--fallback-slide-width)); } } .resource-list__carousel slideshow-slides { gap: var(--resource-list-column-gap); /* Add padding to prevent hover animations from being clipped in slideshow 15px accommodates: - Scale effect (9px on each side from 1.03 scale) - Lift effect (4px upward movement) - Shadow (15px spread with -5px offset) Using 16px for better alignment with our spacing scale */ margin-block: -16px; padding-block: 16px; } .resource-list__carousel slideshow-arrows { padding-inline: var(--util-page-margin-offset); } .resource-list__carousel .resource-list__slide { width: var(--slide-width); flex: 0 0 auto; scroll-snap-align: start; min-width: 0; } /* Base styles */ .group-block, .group-block-content { position: relative; } .group-block:has(> video-background-component), .group-block:has(> .background-image-container) { overflow: hidden; } .group-block-content { height: 100%; width: 100%; } /* Container styles */ .section-content-wrapper.section-content-wrapper:where(.layout-panel-flex) .group-block--fill { flex: 1; } /* Flex behavior for width variants */ .layout-panel-flex--row > .group-block--width-fit { flex: 0; } .layout-panel-flex--row > .group-block--width-fill { flex: 1; } .layout-panel-flex--row > .group-block--width-custom { flex-basis: var(--size-style-width); } /* Dimension utilities - Height */ .group-block--height-fit { height: auto; } .group-block--height-custom, .group-block--height-fill { height: var(--size-style-height); } /* Flex behavior for height variants */ .layout-panel-flex--column > .group-block--height-fit { flex: 0 1 auto; } .layout-panel-flex--column > .group-block--height-fill { flex: 1; } .layout-panel-flex--column > .group-block--height-custom { flex-basis: var(--size-style-height); } accordion-custom { details { &::details-content, .details-content { block-size: 0; overflow-y: clip; opacity: 0; interpolate-size: allow-keywords; transition: content-visibility var(--animation-speed-slow) allow-discrete, padding-block var(--animation-speed-slow) var(--animation-easing), opacity var(--animation-speed-slow) var(--animation-easing), block-size var(--animation-speed-slow) var(--animation-easing); } /* Disable transitions when the content toggle is not caused by the direct user interaction, e.g. opening the filters on mobile. */ &:not(:focus-within)::details-content, &:not(:focus-within) .details-content { transition: none; } &:not([open]) { &::details-content, .details-content { padding-block: 0; } } &[open] { &::details-content, .details-content { opacity: 1; block-size: auto; @starting-style { block-size: 0; opacity: 0; overflow-y: clip; } &:focus-within { overflow-y: visible; } } } } } accordion-custom[data-disable-on-mobile='true'] summary { @media screen and (max-width: 749px) { cursor: auto; } } accordion-custom[data-disable-on-desktop='true'] summary { @media screen and (min-width: 750px) { cursor: auto; } } text-component { --shimmer-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50)); --shimmer-color-light: rgb(var(--color-foreground-rgb) / var(--opacity-10)); --shimmer-speed: 1.25s; display: inline-block; position: relative; transition: color var(--animation-speed-slow) ease; line-height: 1; &::after { content: attr(value); position: absolute; inset: 0; color: transparent; opacity: 0; transition: opacity var(--animation-speed-slow) var(--animation-easing); pointer-events: auto; background-image: linear-gradient( -85deg, var(--shimmer-text-color) 10%, var(--shimmer-color-light) 50%, var(--shimmer-text-color) 90% ); background-clip: text; background-size: 200% 100%; background-position: 100% 0; place-content: center; } &[shimmer] { color: transparent; &::after { opacity: 1; animation: text-shimmer var(--shimmer-speed) infinite linear; } } } @keyframes text-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } /* Animation transitions */ .transition-background-color { transition: background-color var(--animation-speed-medium) ease-in-out; } .transition-transform { transition: transform var(--animation-speed-medium) var(--animation-timing-bounce); } .transition-border-color { transition: border-color var(--animation-speed-medium) var(--animation-timing-hover); } /* Global scrollbar styles */ /* Webkit browsers */ ::-webkit-scrollbar { width: 20px; } ::-webkit-scrollbar-track { background-color: transparent; } ::-webkit-scrollbar-thumb { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-40)); border-radius: 20px; border: 6px solid transparent; background-clip: content-box; transition: background-color 0.2s; } ::-webkit-scrollbar-thumb:hover { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-60)); } @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } } /* Product card title truncation - applied only to zoom-out view */ [product-grid-view='zoom-out'] :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } /* Product card title truncation - applied on mobile regardless of view */ @media screen and (max-width: 749px) { :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } } .product-card:hover, .collection-card:hover, .resource-card:hover, .predictive-search-results__card--product:hover, .predictive-search-results__card:hover { position: relative; z-index: var(--layer-raised); transition: transform var(--hover-transition-duration) var(--hover-transition-timing), box-shadow var(--hover-transition-duration) var(--hover-transition-timing); } .header .product-card:hover, .header .collection-card:hover, .header .resource-card:hover, .header-drawer .product-card:hover, .header-drawer .collection-card:hover, .header-drawer .resource-card:hover { z-index: auto; transform: none; box-shadow: none; } /* Prevent iOS zoom on input focus by ensuring minimum 16px font size on mobile */ @media screen and (max-width: 1200px) { input, textarea, select, /* Higher specificity to override type preset classes like .paragraph, .h1, etc. */ .paragraph.paragraph input, .paragraph.paragraph textarea, .paragraph.paragraph select, .h1.h1 input, .h1.h1 textarea, .h1.h1 select, .h2.h2 input, .h2.h2 textarea, .h2.h2 select, .h3.h3 input, .h3.h3 textarea, .h3.h3 select, .h4.h4 input, .h4.h4 textarea, .h4.h4 select, .h5.h5 input, .h5.h5 textarea, .h5.h5 select, .h6.h6 input, .h6.h6 textarea, .h6.h6 select { font-size: max(1rem, 100%); } } /* ========================================================= CES PFMO — Global Dark/Gold Override (variable-driven) Paste at BOTTOM of base.css ========================================================= */ /* 1) Hard lock the theme variables that your CSS already uses */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; /* if your theme uses rgb variables for opacity mixes */ --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; /* optional: borders/shadows tuned darker */ --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* 2) Some themes scope colors through scheme wrappers (Dawn-style) */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background: #000000 !important; color: #D4AF37 !important; } /* 3) Absolute “white killers” for pages + rich text + section background layers */ html, body, #MainContent, .content-for-layout, main, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .main-page, .main-page .rte, .page .rte, .rte, .shopify-policy__container { background: #000000 !important; color: #D4AF37 !important; } /* 4) Headings + general text (kept tight, no overkill) */ h1, h2, h3, h4, h5, h6 { color: #E6C76A !important; } p, li, span, small, label, legend { color: #D4AF37 !important; } /* 5) Links */ a, a:visited { color: #C9A227 !important; } a:hover { color: #FFD700 !important; } /* 6) Cards/containers that like to default white */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .drawer, .dialog-modal, .cart__summary-container { background: #050505 !important; color: #D4AF37 !important; } /* 7) Inputs */ input, textarea, select { background: #0f0f0f !important; color: #D4AF37 !important; border-color: rgba(212,175,55,0.35) !important; } /* 8) Buttons (keeps theme structure, forces CES palette) */ .button, .button-secondary, .btn, button, button.shopify-payment-button__button--unbranded { background: #0d0d0d !important; color: #D4AF37 !important; box-shadow: inset 0 0 0 1px rgba(212,175,55,0.55) !important; border: none !important; } .button:hover, .button-secondary:hover, button:hover, button.shopify-payment-button__button--unbranded:hover:not([disabled]) { background: #D4AF37 !important; color: #000000 !important; } /* 9) BIG ONE: your CSS literally sets this to white */ zoom-dialog dialog { background: #000000 !important; color: #D4AF37 !important; } /* 10) Table headers & subtle fills inside RTE should not go grey/white */ .rte thead, .rte tr:not(:has(td)) { background-color: rgba(212,175,55,0.08) !important; } /* === CES: reduce "busy" line clutter === */ /* FAQ / accordion: soften borders and add breathing room */ .accordion, details.accordion { border-color: rgba(212, 175, 55, 0.25) !important; /* softer gold */ } .accordion + .accordion, details.accordion + details.accordion { margin-top: 10px !important; } /* If your theme uses summary rows with top/bottom borders */ .accordion summary, details.accordion summary { padding-top: 12px !important; padding-bottom: 12px !important; } /* Reduce heavy section dividers */ hr, .section-divider, .border-top, .border-bottom { border-color: rgba(212, 175, 55, 0.18) !important; } /* === CES: improve readability on gray tiles / cards === */ /* Target common Shopify/Dawn card patterns */ .multicolumn-card, .card, .rte .card, .grid .card { background: rgba(15, 15, 15, 0.92) !important; /* darken tile */ border: 1px solid rgba(212, 175, 55, 0.22) !important; border-radius: 14px !important; } /* Card inner text */ .multicolumn-card__info, .card__content, .card__information { color: rgba(245, 232, 192, 0.92) !important; /* warm off-white */ } /* Headings in cards */ .multicolumn-card__info h3, .card__heading, .card__information h3 { color: rgba(212, 175, 55, 0.95) !important; letter-spacing: 0.2px !important; } /* Paragraph text in cards */ .multicolumn-card__info p, .card__content p, .card__information p { font-size: 15px !important; line-height: 1.5 !important; color: rgba(245, 232, 192, 0.92) !important; } /* Slightly reduce gold intensity globally */ :root { --ces-gold-soft: rgba(212, 175, 55, 0.85); } a, .link, .accent, .ces-accent { color: var(--ces-gold-soft) !important; } /* ===== CES TILE READABILITY FIX ===== */ /* Commission Journey Tiles */ .multicolumn-card, .multicolumn-list__item, .card { background-color: #111111 !important; border: 1px solid rgba(212,175,55,0.18) !important; } /* Tile text */ .multicolumn-card__info, .card__content, .card__information { color: #F3E7B3 !important; } /* Tile headings */ .multicolumn-card__info h3, .card__heading { color: #D4AF37 !important; font-weight: 500 !important; } /* Tile paragraphs */ .multicolumn-card__info p, .card__information p { color: #E8DFAE !important; font-size: 15px !important; } /* ===== CES FAQ SOFTEN LINES ===== */ .accordion, details.accordion { border-color: rgba(212,175,55,0.15) !important; } .accordion summary { padding: 14px 0 !important; } /* Remove double line effect */ .accordion + .accordion { border-top: none !important; } /* ===== CES LUXURY TYPE SETTINGS ===== */ h1, h2, h3 { letter-spacing: 0.04em; } p { line-height: 1.6; } /* Improve section titles */ .section-header h2, h2 { color: #D4AF37; } /* ============================== CES — Commission Journey tiles ============================== */ /* Target the “Your Commission Journey” multicolumn cards */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background: rgba(12, 12, 12, 0.92) !important; /* deep charcoal */ color: rgba(245, 235, 195, 0.92) !important; /* warm readable body */ } /* Add a subtle premium border + depth */ .multicolumn .multicolumn-card, .multicolumn .card { border: 1px solid rgba(212, 175, 55, 0.22) !important; box-shadow: 0 10px 24px rgba(0,0,0,0.45) !important; border-radius: 14px !important; } /* Headings inside tiles */ .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading, .multicolumn .card__heading a { color: rgba(212, 175, 55, 0.95) !important; font-weight: 600 !important; letter-spacing: 0.03em !important; } /* Paragraph text inside tiles */ .multicolumn .multicolumn-card__info p, .multicolumn .card__information p { color: rgba(245, 235, 195, 0.90) !important; font-size: 15px !important; line-height: 1.65 !important; } /* If the “step number” circles are too faint, make them readable */ .multicolumn .multicolumn-card__info .caption, .multicolumn .multicolumn-card__info .rte strong { color: rgba(245, 235, 195, 0.92) !important; } /* ===================================================== CES PFMO MASTER STYLE BLOCK v1 Canvas Enchanted Studio — Global Theme Override Paste at VERY BOTTOM of base.css ===================================================== */ /* =========================== GLOBAL BACKGROUND =========================== */ body, .color-background-1, .color-background-2, .page-width, .shopify-section, .gradient, .section, .background, .main-content { background: #000000 !important; } /* =========================== TEXT HIERARCHY =========================== */ /* Primary Headings */ h1,h2,h3,h4 { color: rgba(212,175,55,0.96) !important; letter-spacing: .04em; font-weight: 600; } /* Body Text */ p, li, span, .rte { color: rgba(245,235,195,0.92) !important; line-height: 1.7; } /* Small text */ small, .caption { color: rgba(200,190,150,0.85) !important; } /* Links */ a { color: rgba(212,175,55,0.95) !important; } a:hover { color: rgba(255,215,110,1) !important; } /* =========================== NAVIGATION =========================== */ .header, .header-wrapper, .header__inline-menu { background:#000000 !important; } .header__menu-item { color:rgba(212,175,55,.95) !important; } /* =========================== ICONS =========================== */ svg, .icon { fill:rgba(212,175,55,.95) !important; } /* =========================== BUTTONS =========================== */ button, .button, .shopify-payment-button__button { background:rgba(212,175,55,.15) !important; border:1px solid rgba(212,175,55,.35) !important; color:rgba(212,175,55,.95) !important; border-radius:40px !important; letter-spacing:.05em; } button:hover, .button:hover { background:rgba(212,175,55,.28) !important; border:1px solid rgba(212,175,55,.55) !important; } /* =========================== SEPARATORS =========================== */ hr { border-color:rgba(212,175,55,.15) !important; } /* =========================== TABLES =========================== */ table { border-color:rgba(212,175,55,.18) !important; color:rgba(245,235,195,.9) !important; } td,th { border-color:rgba(212,175,55,.12) !important; } /* =========================== FAQ SECTION Cleaner less busy =========================== */ .accordion, details.accordion { border-color:rgba(212,175,55,.14) !important; background:#000 !important; } .accordion + .accordion { border-top:none !important; } .accordion summary { padding:16px 0 !important; color:rgba(212,175,55,.95) !important; } .accordion__content { padding-top:10px !important; padding-bottom:18px !important; color:rgba(245,235,195,.9) !important; } /* =========================== COMMISSION JOURNEY TILES =========================== */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background:rgba(10,10,10,.92) !important; color:rgba(245,235,195,.92) !important; } .multicolumn .multicolumn-card, .multicolumn .card { border:1px solid rgba(212,175,55,.22) !important; box-shadow:0 10px 24px rgba(0,0,0,.45) !important; border-radius:14px !important; } .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading { color:rgba(212,175,55,.96) !important; letter-spacing:.04em; } .multicolumn .multicolumn-card__info p { color:rgba(245,235,195,.9) !important; font-size:15px; line-height:1.7; } /* =========================== PRODUCT CARDS =========================== */ .card-wrapper, .card { background:#000 !important; border:1px solid rgba(212,175,55,.18) !important; } /* =========================== INPUT FIELDS =========================== */ input, textarea, select { background:#050505 !important; border:1px solid rgba(212,175,55,.25) !important; color:rgba(245,235,195,.95) !important; } /* =========================== FOOTER =========================== */ .footer { background:#000 !important; border-top:1px solid rgba(212,175,55,.18) !important; } /* =========================== REMOVE WHITE FLASHES =========================== */ body { background:#000 !important; } /* =========================== END PFMO BLOCK =========================== */ /* ========================================================= CES PFMO — Global Dark/Gold Override (FINAL STABLE) Paste at VERY BOTTOM of base.css ========================================================= */ /* --------------------------------- 1. CORE COLOR LOCK --------------------------------- */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* --------------------------------- 2. GLOBAL BACKGROUND LOCK --------------------------------- */ html, body, main, #MainContent, .content-for-layout, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .template-index, .template-collection, .template-product, .template-blog, .template-article, .template-search, .template-cart { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 3. COLOR SCHEME WRAPPERS --------------------------------- */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 4. REMOVE WHITE CARDS --------------------------------- */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .product-grid__item, .product-grid__card, .dialog-modal, .drawer { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 5. TEXT COLOR LOCK --------------------------------- */ h1,h2,h3,h4,h5,h6, p, span, div, label, li, a { color: #D4AF37 !important; } /* --------------------------------- 6. INPUT + FORMS --------------------------------- */ input, textarea, select { background-color: #000000 !important; color: #D4AF37 !important; border-color: #D4AF37 !important; } ::placeholder { color: #B8962E !important; } /* --------------------------------- 7. BUTTONS --------------------------------- */ .button, .button-secondary, button { background-color: #000000 !important; color: #D4AF37 !important; border: 1px solid #D4AF37 !important; } .button:hover, button:hover { background-color: #111111 !important; color: #FFD700 !important; } /* --------------------------------- 8. LINKS --------------------------------- */ a { color: #D4AF37 !important; } a:hover { color: #FFD700 !important; } /* --------------------------------- 9. SECTION BACKGROUND FIX --------------------------------- */ .section-background { background-color: #000000 !important; } /* --------------------------------- 10. SCROLLBAR GOLD --------------------------------- */ ::-webkit-scrollbar-thumb { background-color: #D4AF37 !important; } ::-webkit-scrollbar-thumb:hover { background-color: #FFD700 !important; } /* CES Gentle Realms Collection Grid Control */ .collection .grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 40px !important; max-width: 1200px; margin: auto; } /* Tablet */ @media screen and (max-width: 990px) { .collection .grid { grid-template-columns: repeat(2, 1fr) !important; } } /* Mobile */ @media screen and (max-width: 600px) { .collection .grid { grid-template-columns: 1fr !important; } } /* === CES PRODUCT IMAGE FIX === */ .card__media img, .card__inner img, .product-card img, .grid__item img, .media img, .card img { display:block !important; opacity:1 !important; visibility:visible !important; } .card__media { display:block !important; visibility:visible !important; } .card__inner { display:block !important; } .media { display:block !important; } /* LAUNCH MODE FIX: Collection pages showing products too low / invisible */ .template-collection main, .template-collection .main-content, .template-collection #MainContent { min-height: auto !important; } .template-collection .collection, .template-collection .collection__wrapper, .template-collection .collection-main, .template-collection .collection-grid, .template-collection .product-grid, .template-collection .grid.product-grid { margin-top: 0 !important; padding-top: 0 !important; } .template-collection .collection-description, .template-collection .rte, .template-collection .collection__description { margin-bottom: 18px !important; } /* Prevent giant dead space before the grid */ .template-collection .collection .page-width, .template-collection .collection .page-width > * { max-height: none !important; } /* LAUNCH MODE FIX: collection product card appears but image/text not rendering */ .template-collection .card, .template-collection .card__content, .template-collection .card__information, .template-collection .card__heading, .template-collection .price { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media, .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: cover !important; } /* LAUNCH FIX — product images not showing in collection grid */ .card__media { min-height: 280px !important; height: auto !important; } .card__media img { min-height: 280px !important; height: auto !important; width: 100% !important; object-fit: cover !important; } /* Ensure collection product images render */ .template-collection .card__media { min-height: 320px !important; } .template-collection .card__media img { min-height: 320px !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION PRODUCT IMAGES TO SHOW === */ .template-collection .card-wrapper, .template-collection .card, .template-collection .product-card-wrapper { position: relative !important; } .template-collection .card__media, .template-collection .card__media * { display: block !important; opacity: 1 !important; visibility: visible !important; max-height: none !important; } .template-collection .card__media { height: auto !important; min-height: 220px !important; overflow: visible !important; } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { width: 100% !important; height: auto !important; object-fit: cover !important; } /* If an overlay is covering the card, keep media clickable/visible */ .template-collection .card__inner, .template-collection .collection-card__inner, .template-collection .card__content { pointer-events: auto !important; position: relative !important; z-index: 2 !important; } .template-collection .card__link, .template-collection .full-unstyled-link { z-index: 5 !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION GRID IMAGES V1 === */ /* Paste at VERY BOTTOM of base.css */ .template-collection .card__media, .template-collection .card__inner, .template-collection .media { display: block !important; position: relative !important; overflow: hidden !important; min-height: 280px !important; /* gives the image area a body */ } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg, .template-collection .media img, .template-collection .media picture { display: block !important; opacity: 1 !important; visibility: visible !important; transform: none !important; filter: none !important; mix-blend-mode: normal !important; } .template-collection .card__media img, .template-collection .media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } /* PRODUCT IMAGE VISIBILITY FIX */ .card-gallery { overflow: visible !important; min-height: 400px !important; } .card-gallery img { display: block !important; width: 100% !important; height: auto !important; } .product-card, .card-wrapper, .card { min-height: 400px !important; } /* HOTFIX: force product deferred media posters / preview images to show */ .product-media__image, .deferred-media__poster, .deferred-media__poster-image, .deferred-media__poster img, .product__media img { opacity: 1 !important; visibility: visible !important; display: block !important; } /* If the poster/preview is absolutely positioned, ensure it has a box */ .deferred-media, .product-media, .product__media, .product__media-item, .media { position: relative !important; min-height: 1px !important; } /* Make sure the poster fills the media area */ .deferred-media__poster, .deferred-media__poster-image { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; } /* Make sure the image covers nicely */ .deferred-media__poster img, .deferred-media__poster-image img, .product-media__image img, .product__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } .template-collection .media::before, .template-collection .card__media::before, .template-collection .media::after, .template-collection .card__media::after { display: none !important; content: none !important; } /* === CES PATCH: remove collection tile overlay that hides images === */ .template-collection .card::before, .template-collection .card::after, .template-collection .card__inner::before, .template-collection .card__inner::after, .template-collection .card__media::before, .template-collection .card__media::after, .template-collection .media::before, .template-collection .media::after { content: none !important; display: none !important; } /* ensure media/image layer is on top */ .template-collection .card__media, .template-collection .media, .template-collection .card__media img, .template-collection .media img { position: relative !important; z-index: 2 !important; } /* FIX: quick-add overlay background covering product card media */ .template-collection quick-add-component.quick-add, .template-collection quick-add-component.quick-add::before, .template-collection quick-add-component.quick-add::after { background: transparent !important; background-color: transparent !important; } /* just in case the theme uses the class instead of the custom element */ .template-collection .quick-add { background: transparent !important; background-color: transparent !important; } /* CES DIAGNOSTIC: stop hover surfaces from painting over empty media on collection cards */ .template-collection .card, .template-collection .card__inner, .template-collection .product-card, .template-collection .product-card__inner, .template-collection .card-gallery { background: transparent !important; background-color: transparent !important; } /* If the theme uses a hover background variable, neutralize it on collection pages */ .template-collection { --card-bg-hover: transparent !important; } /* CES DIAGNOSTIC: force card media to render so we can see if it's being hidden/collapsed */ .template-collection .media, .template-collection .card__media, .template-collection .product-card__media, .template-collection .media img, .template-collection img { opacity: 1 !important; visibility: visible !important; display: block !important; height: auto !important; } /* CES HOTFIX: ensure resource cards are visible even if fadeIn keyframes/vars are missing */ .resource-card { opacity: 1 !important; animation: none !important; } /* CES FIX: ensure fadeIn exists + animation vars have safe defaults */ :root { --animation-speed-medium: 0.25s; --animation-timing-fade-in: ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
    • .video-placeholder-wrapper__poster-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 50%; display: flex; align-items: center; justify-content: center; } .deferred-media__poster-icon svg, .video-placeholder-wrapper__poster-icon svg { width: var(--button-size); height: var(--button-size); color: var(--color-white); filter: drop-shadow(var(--shadow-button)); &:hover { color: rgb(var(--color-white-rgb) / var(--opacity-80)); } @media screen and (min-width: 750px) { width: 4rem; height: 4rem; } } deferred-media[class] :is(.deferred-media__poster-button img, .deferred-media__poster-button ~ video) { /* only apply this on the video block not product media */ object-fit: cover; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } .button-shopify-xr { width: 100%; display: flex; justify-content: center; align-items: center; padding: var(--padding-md); } .button-shopify-xr > svg { width: var(--icon-size-sm); height: var(--icon-size-sm); margin-inline-end: var(--margin-md); } .button-shopify-xr[data-shopify-xr-hidden] { display: none; } /* Swatches */ .swatch { --color-border: rgb(var(--color-foreground-rgb) / var(--style-border-swatch-opacity)); --min-width-unitless: 15.9999; /* want to avoid division by 0 */ --min-height-unitless: 15.9999; /* want to avoid division by 0 */ --min-height: 16px; --min-width: 16px; /* mobile values */ --scaling-factor: 0.5; --max-swatch-size: 28px; --max-pill-size: 20px; --max-filter-size: 32px; /* From the settings */ --offset-swatch-width: calc(var(--variant-picker-swatch-width-unitless) - var(--min-width-unitless)); --offset-swatch-height: calc(var(--variant-picker-swatch-height-unitless) - var(--min-height-unitless)); /** Offset values are obtained from the following formulas: offset-width = width - min-width offset-height = height - min-height The offset-scaled-width and heigth are obtained by extending the line from [min,min] to [W,H] and taking the intersection with a square that starts at [min,min] and ends at [max,max]. The extending line forms right angle triangles with the [min,min]->[max,max] box that enable us to derive the following formulas We also want the result to always be smaller than the input (pdp > everywhere else) by some scaling factor. */ --offset-scaled-width: calc( var(--scaling-factor) * var(--offset-swatch-width) / var(--offset-swatch-height) * var(--offset-max-swatch-size) ); --offset-scaled-height: calc( var(--scaling-factor) * var(--offset-swatch-height) / var(--offset-swatch-width) * var(--offset-max-swatch-size) ); --offset-max-swatch-size: calc(var(--max-swatch-size) - var(--min-width)); /* width = min(m + sU, (m + s * W'/H' * M'), M) */ --swatch-width: min( calc(var(--min-width) + var(--scaling-factor) * var(--offset-swatch-width) * 1px), calc(var(--min-width) + var(--offset-scaled-width)), var(--max-swatch-size) ); /* height = min(m + sV, (m + s * H'/W' * M'), M) */ --swatch-height: min( calc(var(--min-height) + var(--scaling-factor) * var(--offset-swatch-height) * 1px), calc(var(--min-height) + var(--offset-scaled-height)), var(--max-swatch-size) ); display: block; background: var(--swatch-background); background-position: var(--swatch-focal-point, center); border-radius: var(--variant-picker-swatch-radius); border: var(--style-border-swatch-width) var(--style-border-swatch-style) var(--color-border); width: var(--swatch-width); height: var(--swatch-height); /* This is different than `background-size: cover` because we use `box-sizing: border-box`, * doing it like makes the background clip under the border without repeating. */ background-size: var(--swatch-width) var(--swatch-height); &.swatch--unavailable { border-style: dashed; } &.swatch--unscaled { /* for when you want fixed sizing (e.g. pdp) */ --swatch-width: var(--variant-picker-swatch-width); --swatch-height: var(--variant-picker-swatch-height); } &.swatch--filter { --swatch-width: var(--max-filter-size); --swatch-height: var(--max-filter-size); border-radius: var(--variant-picker-swatch-radius); } &.swatch--pill { --swatch-width: var(--max-pill-size); --swatch-height: var(--max-pill-size); border-radius: var(--variant-picker-swatch-radius); } /* swatches in filters and pills always have a border */ &.swatch--filter, &.swatch--pill { --style-border-swatch-width: var(--variant-picker-border-width); --style-border-swatch-style: var(--variant-picker-border-style); --color-border: rgb(var(--color-foreground-rgb) / var(--variant-picker-border-opacity)); } &.swatch--variant-image { background-size: cover; } @media screen and (min-width: 750px) { /* desktop values */ --max-swatch-size: 32px; --max-pill-size: 16px; --max-filter-size: 28px; --scaling-factor: 0.65; } } .variant-picker .variant-option--buttons label:has(.swatch) { border-radius: var(--variant-picker-swatch-radius); } .sticky-content { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } @media screen and (min-width: 750px) { .sticky-content--desktop, .sticky-content--desktop.full-height--desktop > .group-block { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } } .price, .compare-at-price, .unit-price { white-space: nowrap; } .unit-price { display: block; font-size: min(0.85em, var(--font-paragraph--size)); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } .tax-note.tax-note.tax-note { font-size: min(0.85em, var(--font-paragraph--size)); font-weight: var(--font-paragraph--weight); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } product-price.text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) > *:not(.tax-note) { margin-block: 0; } .compare-at-price { opacity: 0.4; text-decoration-line: line-through; text-decoration-thickness: 1.5px; } .card-gallery { position: relative; } @container (max-width: 70px) { .card-gallery:hover .quick-add__button { display: none; } } /* Drawer */ .drawer { background-color: var(--color-background); position: fixed; top: 0; left: 0; bottom: 0; width: var(--sidebar-width); z-index: var(--layer-raised); transform: translateX(-120%); transition: transform var(--animation-speed) var(--animation-easing); } .drawer[data-open='true'] { transform: translateX(0); } .drawer-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; } .drawer__header { display: flex; justify-content: space-between; align-items: center; padding: var(--drawer-header-block-padding) var(--drawer-inline-padding); } .drawer__title { font-size: var(--font-h2--size); margin: 0; } .drawer__close { width: var(--minimum-touch-target); height: var(--minimum-touch-target); } .drawer__content { display: block; padding: var(--drawer-content-block-padding) var(--drawer-inline-padding); width: 100%; } /* Background overlay */ .background-overlay { position: relative; &::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--background-overlay-color, rgb(0 0 0 / 15%)); } } /* Spacing style */ .spacing-style { --spacing-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --spacing-scale: var(--spacing-scale-default); } /* Must disable this, when you use these with calc and another unit type, things break — see logo.liquid */ /* stylelint-disable length-zero-no-unit */ --padding-block: 0px; --padding-block-start: var(--padding-block, 0px); --padding-block-end: var(--padding-block, 0px); --padding-inline: 0px; --padding-inline-start: var(--padding-inline, 0px); --padding-inline-end: var(--padding-inline, 0px); --margin-block: 0px; --margin-block-start: var(--margin-block, 0px); --margin-block-end: var(--margin-block, 0px); --margin-inline: 0px; --margin-inline-start: var(--margin-inline, 0px); --margin-inline-end: var(--margin-inline, 0px); } .spacing-style, .inherit-spacing { padding-block: calc(var(--padding-block-start) + var(--section-top-offset, 0px)) var(--padding-block-end); padding-inline: var(--padding-inline-start) var(--padding-inline-end); margin-block: var(--margin-block-start) var(--margin-block-end); margin-inline: var(--margin-inline-start) var(--margin-inline-end); } /* Size style */ .size-style { width: var(--size-style-width-mobile, var(--size-style-width)); height: var(--size-style-height-mobile, var(--size-style-height)); @media screen and (min-width: 750px) { width: var(--size-style-width); height: var(--size-style-height); } } /* Custom Typography style */ .custom-typography, .custom-typography > * { font-family: var(--font-family); font-weight: var(--font-weight); text-transform: var(--text-transform); text-wrap: var(--text-wrap); line-height: var(--line-height); letter-spacing: var(--letter-spacing); } .custom-typography { h1 { line-height: var(--line-height--display, var(--line-height)); } h2, h3, h4 { line-height: var(--line-height--heading, var(--line-height)); } p { line-height: var(--line-height--body, var(--line-height)); } } .custom-font-size, .custom-font-size > * { font-size: var(--font-size); } .custom-font-weight, .custom-font-weight > * { font-weight: var(--weight); } /* Border override style */ .border-style { border-width: var(--border-width); border-style: var(--border-style); border-color: var(--border-color); border-radius: var(--border-radius); } /* Gap scaling style */ .gap-style, .layout-panel-flex { --gap-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --gap-scale: var(--spacing-scale-default); } } .layout-panel-flex { display: flex; gap: var(--gap); height: 100%; } .layout-panel-flex--row { flex-flow: row var(--flex-wrap); justify-content: var(--horizontal-alignment); align-items: var(--vertical-alignment); } .layout-panel-flex--column { flex-flow: column var(--flex-wrap); align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment); } @media screen and (max-width: 749px) { .mobile-column { flex-flow: column nowrap; align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment-mobile); } .layout-panel-flex--row:not(.mobile-column) { flex-wrap: var(--flex-wrap-mobile); > .menu { flex: 1 1 min-content; } > .text-block { flex: 1 1 var(--max-width--display-tight); } > .image-block { flex: 1 1 var(--size-style-width-mobile-min); } > .button { flex: 0 0 fit-content; } } } @media (min-width: 750px) { .layout-panel-flex { flex-direction: var(--flex-direction); } } /* Form fields */ .field { position: relative; width: 100%; display: flex; transition: box-shadow var(--animation-speed) ease; } .field__input { flex-grow: 1; text-align: left; border-radius: var(--style-border-radius-inputs); transition: box-shadow var(--animation-speed) ease, background-color var(--animation-speed) ease; padding: var(--input-padding); box-shadow: var(--input-box-shadow); background-color: var(--color-input-background); color: var(--color-input-text); border: none; outline: none; font-size: var(--font-paragraph--size); &:autofill { background-color: var(--color-input-background); color: var(--color-input-text); } } .field__input:is(:focus, :hover) { box-shadow: var(--input-box-shadow-focus); background-color: var(--color-input-hover-background); } .field__input--button-radius { border-radius: var(--style-border-radius-buttons-primary); } .field__input--button-padding { padding-inline: var(--padding-3xl); } .field__label { color: rgb(var(--color-input-text-rgb) / var(--opacity-80)); font-size: var(--font-paragraph--size); left: var(--input-padding-x); top: 50%; transform: translateY(-50%); margin-bottom: 0; pointer-events: auto; position: absolute; transition: top var(--animation-speed) ease, font-size var(--animation-speed) ease; } /* RTE styles */ .rte, .shopify-policy__title { :is(h1, h2, h3, h4, h5, h6) { margin-block: clamp(1.5rem, 1em * 3.3, 2.5rem) clamp(1rem, 1em * 0.25, 2rem); } :first-child:is(p, h1, h2, h3, h4, h5, h6), :first-child:empty + :is(p, h1, h2, h3, h4, h5, h6) { margin-block-start: 0; } ul, ol { margin-block-start: 0; padding-inline-start: 1.5em; } /* Only apply margin-block-end to the higher level list, not nested lists */ :is(ul, ol):not(:is(ul, ol) :is(ul, ol)) { margin-block-end: 1em; } blockquote { margin-inline: 1.5em 2.3em; margin-block: 3.8em; padding-inline-start: 0.8em; border-inline-start: 1.5px solid rgb(var(--color-foreground-rgb) / var(--opacity-25)); font-style: italic; font-weight: 500; } .rte-table-wrapper { overflow-x: auto; } table { /* stylelint-disable-next-line declaration-no-important */ width: 100% !important; border-collapse: collapse; } tr:not(:has(td)), thead { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5)); font-weight: bold; text-transform: uppercase; } tr:has(td) { border-bottom: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-10)); } th, td { text-align: start; padding-inline: var(--padding-md); padding-block: var(--padding-sm); } } .shopify-policy__container { padding-block: var(--padding-xl); } .checkbox { --checkbox-size: 22px; --checkbox-top: 50%; --checkbox-left: 1.5px; --checkbox-offset: 3px; --checkbox-border-radius: 7px; --checkbox-label-padding: 8px; --checkbox-path-opacity: 0; --checkbox-cursor: pointer; --checkbox-border: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55)); position: relative; display: flex; align-items: center; @media screen and (min-width: 750px) { --checkbox-size: 16px; --checkbox-border-radius: 5px; --checkbox-label-padding: 6px; } &:has(.checkbox__input:checked) { --checkbox-path-opacity: 1; } &.checkbox--disabled { --checkbox-cursor: not-allowed; } } .checkbox__input { position: absolute; opacity: 0; margin: 0; width: var(--checkbox-size); height: var(--checkbox-size); /* Outline is on the SVG instead, to allow it to have border-radius */ &:focus-visible { outline: none; } &:focus-visible + .checkbox__label .icon-checkmark { outline: var(--focus-outline-width) solid currentcolor; outline-offset: var(--focus-outline-offset); } &:checked + .checkbox__label .icon-checkmark { background-color: var(--color-foreground); border-color: var(--color-foreground); } &:disabled + .checkbox__label .icon-checkmark { background-color: var(--input-disabled-background-color); border-color: var(--input-disabled-border-color); } } .checkbox__label { position: relative; display: inline-flex; cursor: var(--checkbox-cursor); line-height: var(--checkbox-size); min-width: var(--minimum-touch-target); } .checkbox .icon-checkmark { height: var(--checkbox-size); width: var(--checkbox-size); flex-shrink: 0; border: var(--checkbox-border); border-radius: var(--checkbox-border-radius); background-color: var(--color-background); } .checkbox__label-text { padding-inline-start: var(--checkbox-label-padding); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .checkbox .icon-checkmark path { stroke: var(--color-background); opacity: var(--checkbox-path-opacity); transition: opacity var(--animation-speed) var(--animation-easing); } .checkbox__input:disabled + .checkbox__label { color: var(--input-disabled-text-color); } /* Add to cart button */ .button[id^='BuyButtons-ProductSubmitButton-'] { position: relative; overflow: hidden; } /* Cart bubble */ .cart-bubble { --cart-padding: 0.2em; position: relative; width: 20px; aspect-ratio: 1; border-radius: 50%; border-width: 0; display: flex; line-height: normal; align-items: center; justify-content: center; color: var(--color-primary-button-text); padding-inline: var(--cart-padding); } .cart-bubble__background { position: absolute; inset: 0; background-color: var(--color-primary-button-background); border-radius: var(--style-border-radius-lg); } .cart-bubble__text { font-size: var(--font-size--3xs); z-index: var(--layer-flat); line-height: 1; display: flex; align-items: center; justify-content: center; } /* Quantity selector */ .quantity-selector { --quantity-selector-width: 124px; display: flex; justify-content: space-between; align-items: center; color: var(--color-input-text); background-color: var(--color-input-background); border: var(--style-border-width-inputs) solid var(--color-input-border); border-radius: var(--style-border-radius-inputs); flex: 1 1 var(--quantity-selector-width); align-self: stretch; transition: background-color var(--animation-speed) var(--animation-easing); &:hover { background-color: var(--color-input-hover-background); } } .product-form-buttons:has(.add-to-cart-button.button-secondary) .quantity-selector { border-radius: var(--style-border-radius-buttons-secondary); } .quantity-selector :is(.quantity-minus, .quantity-plus) { /* Unset button styles */ padding: 0; background: transparent; box-shadow: none; display: flex; justify-content: center; align-items: center; cursor: pointer; width: var(--minimum-touch-target); height: var(--minimum-touch-target); flex-shrink: 0; color: var(--color-input-text); } .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-inputs); border-end-start-radius: var(--style-border-radius-inputs); } .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-inputs); border-end-end-radius: var(--style-border-radius-inputs); } .product-details .quantity-selector { border-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-buttons-primary); border-end-start-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-buttons-primary); border-end-end-radius: var(--style-border-radius-buttons-primary); } .quantity-selector .svg-wrapper { transition: transform var(--animation-speed) var(--animation-easing); } .quantity-selector svg { width: var(--icon-size-xs); height: var(--icon-size-xs); } :is(.quantity-minus, .quantity-plus):active .svg-wrapper { transform: scale(0.9); } .quantity-selector input[type='number'] { margin: 0; text-align: center; border: none; appearance: none; max-width: calc(var(--quantity-selector-width) - var(--minimum-touch-target) * 2); border-radius: var(--style-border-radius-buttons); color: var(--color-input-text); background-color: transparent; } /* Chrome, Safari, Edge, Opera */ .quantity-selector input[type='number']::-webkit-inner-spin-button, .quantity-selector input[type='number']::-webkit-outer-spin-button { appearance: none; } /* Firefox */ .quantity-selector input[type='number'] { appearance: textfield; } /* Pills (used in facets and predictive search) */ .pills__pill { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15)); color: var(--color-foreground); display: flex; justify-content: space-between; align-items: center; gap: var(--gap-sm); min-width: 48px; padding: 6px 12px; border-radius: var(--style-border-radius-pills); cursor: pointer; background-color: var(--pills-pill-background-color); transition: background-color var(--animation-speed) var(--animation-easing); &:hover { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); } @media screen and (max-width: 749px) { padding: var(--padding-xs) var(--padding-md); } } .pills__pill > .svg-wrapper { --close-icon-opacity: 0.4; --icon-stroke-width: 1px; color: var(--color-foreground); } .pills__pill--swatch { @media screen and (max-width: 749px) { padding-inline-start: var(--padding-sm); } } .pills__pill--swatch .swatch { margin-right: -4px; } .pills__pill--desktop-small { @media screen and (min-width: 750px) { font-size: var(--font-size--xs); } } /* Fly to cart animation */ fly-to-cart { --offset-y: 10px; position: fixed; width: var(--width, 40px); height: var(--height, 40px); left: 0; top: 0; z-index: calc(infinity); pointer-events: auto; border-radius: var(--style-border-radius-buttons-primary); overflow: hidden; object-fit: cover; background-size: cover; background-position: center; opacity: 0; background-color: var(--color-foreground); translate: var(--start-x, 0) var(--start-y, 0); transform: translate(-50%, -50%); animation-name: travel-x, travel-y, travel-scale; animation-timing-function: var(--x-timing), var(--y-timing), var(--scale-timing); animation-duration: 0.6s; animation-composition: accumulate; animation-fill-mode: both; } fly-to-cart.fly-to-cart--main { --x-timing: cubic-bezier(0.7, -5, 0.98, 0.5); --y-timing: cubic-bezier(0.15, 0.57, 0.9, 1.05); --scale-timing: cubic-bezier(0.85, 0.05, 0.96, 1); } fly-to-cart.fly-to-cart--quick { --x-timing: cubic-bezier(0, -0.1, 1, 0.32); --y-timing: cubic-bezier(0, 0.92, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); animation-duration: 0.6s; } fly-to-cart.fly-to-cart--sticky { --x-timing: cubic-bezier(0.98, -0.8, 0.92, 0.5); --y-timing: cubic-bezier(0.14, 0.56, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); --radius: var(--style-border-radius-buttons-primary); @media (max-width: 749px) { --x-timing: cubic-bezier(0.98, -0.1, 0.92, 0.5); } animation-duration: 0.8s; } @keyframes travel-scale { 0% { opacity: var(--start-opacity, 1); } 5% { opacity: 1; } 100% { border-radius: 50%; opacity: 1; transform: translate(-50%, calc(-50% + var(--offset-y))) scale(0.25); } } @keyframes travel-x { to { translate: var(--travel-x, 0) 0; } } @keyframes travel-y { to { translate: 0 var(--travel-y, 0); } } /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* Animation declarations - to be kept at the bottom of the file for ease of find */ @keyframes grow { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } @keyframes move-and-fade { from { transform: translate(var(--start-x, 0), var(--start-y, 0)); opacity: var(--start-opacity, 0); } to { transform: translate(var(--end-x, 0), var(--end-y, 0)); opacity: var(--end-opacity, 1); } } @keyframes slideInTopViewTransition { from { transform: translateY(100px); } } @keyframes elementSlideInTop { from { margin-top: var(--padding-sm); opacity: 0; } to { margin-top: 0; opacity: 1; } } @keyframes elementSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } @keyframes elementSlideInBottom { from { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes elementSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } } @keyframes thumbnailsSlideInTop { from { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } to { transform: translateY(-50%); opacity: 1; } } @keyframes thumbnailsSlideOutTop { from { transform: translateY(-50%); opacity: 1; } to { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } } @keyframes thumbnailsSlideInBottom { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes thumbnailsSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(100%); opacity: 0; } } @keyframes search-element-slide-in-bottom { 0% { transform: translateY(20px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes search-element-slide-out-bottom { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(20px); opacity: 0; } } @keyframes dialogZoom { from { opacity: 1; transform: scale(1) translateY(0); } to { opacity: 0; transform: scale(0.95) translateY(1em); } } @keyframes thumbnail-selected { 0%, 100% { box-shadow: 0 0 0 2px transparent; scale: 0.9; } 50% { box-shadow: 0 0 0 2px #000; scale: 1; } } @keyframes backdropFilter { from { backdrop-filter: brightness(1); } to { backdrop-filter: brightness(0.75); } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes modalSlideInTop { from { transform: translateY(var(--padding-sm)); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes modalSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } .bubble { display: inline-flex; height: calc(var(--variant-picker-swatch-height) / 1.5); font-size: var(--font-size--xs); border-radius: 20px; min-width: 20px; padding: 0 6px; background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); color: var(--color-foreground); align-items: center; justify-content: center; } .bubble svg { width: 12px; height: 12px; } .top-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(-50px 0 0 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .top-shadow--mobile::before { display: none; } } .bottom-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(0 0 -50px 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .bottom-shadow--mobile::before { display: none; } } .video-placeholder-wrapper { position: relative; width: 100%; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } :not(deferred-media) > .video-placeholder-wrapper { width: var(--video-placeholder-width); } .video-placeholder-wrapper > * { width: 100%; height: 100%; object-fit: cover; object-position: center; } /* * Slideshow Component */ slideshow-component { --cursor: grab; --slide-offset: 6px; position: relative; display: flex; flex-direction: column; timeline-scope: var(--slideshow-timeline); } slideshow-component.slideshow--content-below-media slideshow-slide { display: grid; } .slideshow--content-below-media slideshow-slide :is(.slide__image-container, .slide__content) { position: static; } .slideshow--content-below-media slideshow-slide { grid-template-rows: var(--grid-template-rows); @media screen and (min-width: 750px) { grid-template-rows: var(--grid-template-rows-desktop); } } .slide__content { opacity: 0; animation: slide-reveal both linear; animation-timeline: var(--slideshow-timeline); @media (prefers-reduced-motion) { opacity: 1; animation: none; } } .slideshow--single-media { --cursor: default; } a slideshow-component { --cursor: pointer; } /* * Slideshow Slides */ slideshow-slides { width: 100%; position: relative; display: flex; overflow-x: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-color: transparent transparent; scrollbar-width: none; gap: var(--slideshow-gap, 0); cursor: var(--cursor); min-height: var(--slide-min-height); @media (prefers-reduced-motion) { scroll-behavior: auto; } &::-webkit-scrollbar { width: 0; } &::-webkit-scrollbar-track { background: transparent; } &::-webkit-scrollbar-thumb { background: transparent; border: none; } @media screen and (min-width: 750px) { min-height: var(--slide-min-height-desktop); } } slideshow-component[disabled='true'] slideshow-slides { overflow: hidden; } slideshow-component[mobile-disabled] slideshow-slides { @media screen and (max-width: 749px) { overflow: hidden; } } slideshow-slide { position: relative; scroll-snap-align: center; width: var(--slide-width, 100%); max-height: 100%; flex-shrink: 0; view-timeline-name: var(--slideshow-timeline); view-timeline-axis: inline; content-visibility: auto; contain-intrinsic-size: auto none; border-radius: var(--corner-radius, 0); overflow: hidden; slideshow-component[actioned] &, &[aria-hidden='false'] { content-visibility: visible; } slideshow-component slideshow-slide:not([aria-hidden='false']) { content-visibility: hidden; } &[hidden]:not([reveal]) { display: none; } /* Make inactive slides appear clickable */ &[aria-hidden='true'] { cursor: pointer; } } slideshow-slide .slide__image-container--rounded { border-radius: var(--corner-radius, 0); } slideshow-slide.product-media-container--tallest { content-visibility: visible; } @media screen and (max-width: 749px) { /* Media gallery has a peeking slide on the right side always, and on the left side when the current slide is the last one */ .media-gallery--hint :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']:last-of-type), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } } /* * Collection and Resource list carousels have peeking slides on both sides. * Card galleries preview the next or previous images on 'pointerenter', so we * try to kick load them beforehand (they are lazy loaded otherwise). */ :is(.resource-list__carousel, .card-gallery) :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } /* * Be specific about HTML children structure to avoid targeting nested slideshows. * Ensure that the content is 'visible' while scrolling instead of 'auto' to avoid issues in Safari. */ slideshow-component:is([dragging], [transitioning], :hover) > slideshow-container > slideshow-slides > slideshow-slide { content-visibility: visible; } slideshow-slides[gutters*='start'] { padding-inline-start: var(--gutter-slide-width, 0); scroll-padding-inline-start: var(--gutter-slide-width, 0); } slideshow-slides[gutters*='end'] { padding-inline-end: var(--gutter-slide-width, 0); } slideshow-component[dragging] { --cursor: grabbing; * { pointer-events: auto; } } slideshow-component[dragging] slideshow-arrows { display: none; } slideshow-container { width: 100%; display: block; position: relative; grid-area: container; container-type: inline-size; } @media screen and (min-width: 750px) { .media-gallery--carousel slideshow-component:has(slideshow-controls[thumbnails]) { &:has(slideshow-controls[pagination-position='right']) { display: grid; grid-template: 'container controls' auto 'arrows controls' min-content / 1fr auto; } &:has(slideshow-controls[pagination-position='left']) { display: grid; grid-template: 'controls container' auto 'controls arrows' min-content / auto 1fr; } slideshow-controls[pagination-position='left'] { order: -1; } } } /* Slideshow Play/Pause */ .slideshow-control:is(.icon-pause, .icon-play) { color: var(--color-active); &:hover { color: var(--color-hover); } svg { display: none; } } slideshow-component:is([autoplay]) { &:is([paused]) { .icon-play > svg { display: block; } } &:not([paused]) { .icon-pause > svg { display: block; } } } /* Slideshow Arrows */ slideshow-arrows { --cursor-previous: w-resize; --cursor-next: e-resize; position: absolute; inset: 0; display: flex; z-index: var(--layer-heightened); pointer-events: auto; mix-blend-mode: difference; align-items: flex-end; &[position='left'] { justify-content: flex-start; padding-inline: var(--padding-xs); } &[position='right'] { justify-content: flex-end; padding-inline: var(--padding-xs); } &[position='center'] { justify-content: space-between; align-items: center; } } slideshow-arrows:has(.slideshow-control--shape-square), slideshow-arrows:has(.slideshow-control--shape-circle) { mix-blend-mode: normal; } slideshow-component[disabled='true'] slideshow-arrows { display: none; } slideshow-arrows .slideshow-control { pointer-events: auto; opacity: 0; min-height: var(--minimum-touch-target); min-width: var(--minimum-touch-target); padding: 0 var(--padding-xs); color: var(--color-white); } slideshow-arrows .slideshow-control.slideshow-control--style-none { display: none; } .media-gallery--carousel slideshow-arrows .slideshow-control { padding-inline: 0 var(--padding-md); opacity: 1; } .card-gallery slideshow-arrows .slideshow-control { /* Align icons with quick-add button */ padding-inline: var(--padding-xl); @container (max-width: 249px) { padding-inline: 0 var(--padding-sm); } } :not(.media-gallery--carousel) > :is(slideshow-component:hover, slideshow-component:focus-within):not(:has(slideshow-controls:hover)) > slideshow-container > slideshow-arrows .slideshow-control { animation: arrowsSlideIn var(--animation-speed) var(--animation-easing) forwards; } @keyframes arrowsSlideIn { from { transform: translate(var(--padding-sm), 0); opacity: 0; } to { opacity: 1; } } @keyframes slide-reveal { 0% { translate: calc(var(--slideshow-slide-offset, 6) * 1rem) 0; opacity: 0; } 50% { opacity: 1; } 100% { translate: calc(var(--slideshow-slide-offset, 6) * -1rem) 0; opacity: 0; } } .block-resource-list { display: flex; flex-direction: column; row-gap: var(--gap); min-width: 0; min-height: 0; container-type: inline-size; container-name: resource-list; } .section-resource-list, .section-carousel { row-gap: var(--gap); } .section-resource-list__content { display: flex; flex-direction: column; align-items: var(--horizontal-alignment); gap: var(--gap); width: 100%; } .section-resource-list__content:empty { display: none; } .section-resource-list__header:is(:empty, :has(.group-block-content:empty)), .section-resource-list__content:empty { display: none; } .section-resource-list.section--full-width product-card-link > .group-block, .section-carousel.section--full-width product-card-link > .group-block { @media screen and (max-width: 749px) { padding-inline: max(var(--padding-xs), var(--padding-inline-start)) max(var(--padding-xs), var(--padding-inline-end)); } } .resource-list--carousel-mobile { display: block; @media screen and (min-width: 750px) { display: none; } } .resource-list { --resource-list-mobile-gap-max: 9999px; --resource-list-column-gap: min(var(--resource-list-column-gap-desktop), var(--resource-list-mobile-gap-max)); --resource-list-row-gap: min(var(--resource-list-row-gap-desktop), var(--resource-list-mobile-gap-max)); width: 100%; @media screen and (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } @container resource-list (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } } .resource-list--grid { display: grid; gap: var(--resource-list-row-gap) var(--resource-list-column-gap); grid-template-columns: var(--resource-list-columns-mobile); @media screen and (min-width: 750px) { grid-template-columns: var(--resource-list-columns); } @container resource-list (max-width: 449px) { grid-template-columns: var(--resource-list-columns-mobile); } @container resource-list(min-width: 450px) and (max-width: 749px) { --resource-list-columns-per-row: 3; grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); /* Avoid orphan in last row when there are 4, 7, or 10 items */ &:has(.resource-list__item:first-child:nth-last-child(3n + 1)), /* Clean two full rows when there are 8 items */ &:has(.resource-list__item:first-child:nth-last-child(8n)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 750px) { grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); &:has(.resource-list__item:first-child:nth-last-child(n + 9)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(n + 7):nth-last-child(-n + 8)) { --resource-list-columns-per-row: 4; } &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 3; } &:has(.resource-list__item:first-child:nth-last-child(5)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(-n + 4)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 1200px) { &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 6; } } } .resource-list__item { height: 100%; color: var(--color-foreground); text-decoration: none; } .resource-list__carousel { --slide-width: 60vw; width: 100%; position: relative; container-type: inline-size; container-name: resource-list-carousel; .slideshow-control[disabled] { display: none; } .slideshow-control--next { margin-inline-start: auto; } } @container resource-list-carousel (max-width: 749px) { .resource-list__carousel .resource-list__slide { --slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); } } @container resource-list-carousel (min-width: 750px) { .resource-list__carousel .resource-list__slide { --section-slide-width: calc( (100% - (var(--resource-list-column-gap) * (var(--column-count) - 1)) - var(--peek-next-slide-size)) / var(--column-count) ); --fallback-slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); --slide-width: var(--section-slide-width, var(--fallback-slide-width)); } } .resource-list__carousel slideshow-slides { gap: var(--resource-list-column-gap); /* Add padding to prevent hover animations from being clipped in slideshow 15px accommodates: - Scale effect (9px on each side from 1.03 scale) - Lift effect (4px upward movement) - Shadow (15px spread with -5px offset) Using 16px for better alignment with our spacing scale */ margin-block: -16px; padding-block: 16px; } .resource-list__carousel slideshow-arrows { padding-inline: var(--util-page-margin-offset); } .resource-list__carousel .resource-list__slide { width: var(--slide-width); flex: 0 0 auto; scroll-snap-align: start; min-width: 0; } /* Base styles */ .group-block, .group-block-content { position: relative; } .group-block:has(> video-background-component), .group-block:has(> .background-image-container) { overflow: hidden; } .group-block-content { height: 100%; width: 100%; } /* Container styles */ .section-content-wrapper.section-content-wrapper:where(.layout-panel-flex) .group-block--fill { flex: 1; } /* Flex behavior for width variants */ .layout-panel-flex--row > .group-block--width-fit { flex: 0; } .layout-panel-flex--row > .group-block--width-fill { flex: 1; } .layout-panel-flex--row > .group-block--width-custom { flex-basis: var(--size-style-width); } /* Dimension utilities - Height */ .group-block--height-fit { height: auto; } .group-block--height-custom, .group-block--height-fill { height: var(--size-style-height); } /* Flex behavior for height variants */ .layout-panel-flex--column > .group-block--height-fit { flex: 0 1 auto; } .layout-panel-flex--column > .group-block--height-fill { flex: 1; } .layout-panel-flex--column > .group-block--height-custom { flex-basis: var(--size-style-height); } accordion-custom { details { &::details-content, .details-content { block-size: 0; overflow-y: clip; opacity: 0; interpolate-size: allow-keywords; transition: content-visibility var(--animation-speed-slow) allow-discrete, padding-block var(--animation-speed-slow) var(--animation-easing), opacity var(--animation-speed-slow) var(--animation-easing), block-size var(--animation-speed-slow) var(--animation-easing); } /* Disable transitions when the content toggle is not caused by the direct user interaction, e.g. opening the filters on mobile. */ &:not(:focus-within)::details-content, &:not(:focus-within) .details-content { transition: none; } &:not([open]) { &::details-content, .details-content { padding-block: 0; } } &[open] { &::details-content, .details-content { opacity: 1; block-size: auto; @starting-style { block-size: 0; opacity: 0; overflow-y: clip; } &:focus-within { overflow-y: visible; } } } } } accordion-custom[data-disable-on-mobile='true'] summary { @media screen and (max-width: 749px) { cursor: auto; } } accordion-custom[data-disable-on-desktop='true'] summary { @media screen and (min-width: 750px) { cursor: auto; } } text-component { --shimmer-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50)); --shimmer-color-light: rgb(var(--color-foreground-rgb) / var(--opacity-10)); --shimmer-speed: 1.25s; display: inline-block; position: relative; transition: color var(--animation-speed-slow) ease; line-height: 1; &::after { content: attr(value); position: absolute; inset: 0; color: transparent; opacity: 0; transition: opacity var(--animation-speed-slow) var(--animation-easing); pointer-events: auto; background-image: linear-gradient( -85deg, var(--shimmer-text-color) 10%, var(--shimmer-color-light) 50%, var(--shimmer-text-color) 90% ); background-clip: text; background-size: 200% 100%; background-position: 100% 0; place-content: center; } &[shimmer] { color: transparent; &::after { opacity: 1; animation: text-shimmer var(--shimmer-speed) infinite linear; } } } @keyframes text-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } /* Animation transitions */ .transition-background-color { transition: background-color var(--animation-speed-medium) ease-in-out; } .transition-transform { transition: transform var(--animation-speed-medium) var(--animation-timing-bounce); } .transition-border-color { transition: border-color var(--animation-speed-medium) var(--animation-timing-hover); } /* Global scrollbar styles */ /* Webkit browsers */ ::-webkit-scrollbar { width: 20px; } ::-webkit-scrollbar-track { background-color: transparent; } ::-webkit-scrollbar-thumb { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-40)); border-radius: 20px; border: 6px solid transparent; background-clip: content-box; transition: background-color 0.2s; } ::-webkit-scrollbar-thumb:hover { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-60)); } @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } } /* Product card title truncation - applied only to zoom-out view */ [product-grid-view='zoom-out'] :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } /* Product card title truncation - applied on mobile regardless of view */ @media screen and (max-width: 749px) { :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } } .product-card:hover, .collection-card:hover, .resource-card:hover, .predictive-search-results__card--product:hover, .predictive-search-results__card:hover { position: relative; z-index: var(--layer-raised); transition: transform var(--hover-transition-duration) var(--hover-transition-timing), box-shadow var(--hover-transition-duration) var(--hover-transition-timing); } .header .product-card:hover, .header .collection-card:hover, .header .resource-card:hover, .header-drawer .product-card:hover, .header-drawer .collection-card:hover, .header-drawer .resource-card:hover { z-index: auto; transform: none; box-shadow: none; } /* Prevent iOS zoom on input focus by ensuring minimum 16px font size on mobile */ @media screen and (max-width: 1200px) { input, textarea, select, /* Higher specificity to override type preset classes like .paragraph, .h1, etc. */ .paragraph.paragraph input, .paragraph.paragraph textarea, .paragraph.paragraph select, .h1.h1 input, .h1.h1 textarea, .h1.h1 select, .h2.h2 input, .h2.h2 textarea, .h2.h2 select, .h3.h3 input, .h3.h3 textarea, .h3.h3 select, .h4.h4 input, .h4.h4 textarea, .h4.h4 select, .h5.h5 input, .h5.h5 textarea, .h5.h5 select, .h6.h6 input, .h6.h6 textarea, .h6.h6 select { font-size: max(1rem, 100%); } } /* ========================================================= CES PFMO — Global Dark/Gold Override (variable-driven) Paste at BOTTOM of base.css ========================================================= */ /* 1) Hard lock the theme variables that your CSS already uses */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; /* if your theme uses rgb variables for opacity mixes */ --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; /* optional: borders/shadows tuned darker */ --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* 2) Some themes scope colors through scheme wrappers (Dawn-style) */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background: #000000 !important; color: #D4AF37 !important; } /* 3) Absolute “white killers” for pages + rich text + section background layers */ html, body, #MainContent, .content-for-layout, main, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .main-page, .main-page .rte, .page .rte, .rte, .shopify-policy__container { background: #000000 !important; color: #D4AF37 !important; } /* 4) Headings + general text (kept tight, no overkill) */ h1, h2, h3, h4, h5, h6 { color: #E6C76A !important; } p, li, span, small, label, legend { color: #D4AF37 !important; } /* 5) Links */ a, a:visited { color: #C9A227 !important; } a:hover { color: #FFD700 !important; } /* 6) Cards/containers that like to default white */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .drawer, .dialog-modal, .cart__summary-container { background: #050505 !important; color: #D4AF37 !important; } /* 7) Inputs */ input, textarea, select { background: #0f0f0f !important; color: #D4AF37 !important; border-color: rgba(212,175,55,0.35) !important; } /* 8) Buttons (keeps theme structure, forces CES palette) */ .button, .button-secondary, .btn, button, button.shopify-payment-button__button--unbranded { background: #0d0d0d !important; color: #D4AF37 !important; box-shadow: inset 0 0 0 1px rgba(212,175,55,0.55) !important; border: none !important; } .button:hover, .button-secondary:hover, button:hover, button.shopify-payment-button__button--unbranded:hover:not([disabled]) { background: #D4AF37 !important; color: #000000 !important; } /* 9) BIG ONE: your CSS literally sets this to white */ zoom-dialog dialog { background: #000000 !important; color: #D4AF37 !important; } /* 10) Table headers & subtle fills inside RTE should not go grey/white */ .rte thead, .rte tr:not(:has(td)) { background-color: rgba(212,175,55,0.08) !important; } /* === CES: reduce "busy" line clutter === */ /* FAQ / accordion: soften borders and add breathing room */ .accordion, details.accordion { border-color: rgba(212, 175, 55, 0.25) !important; /* softer gold */ } .accordion + .accordion, details.accordion + details.accordion { margin-top: 10px !important; } /* If your theme uses summary rows with top/bottom borders */ .accordion summary, details.accordion summary { padding-top: 12px !important; padding-bottom: 12px !important; } /* Reduce heavy section dividers */ hr, .section-divider, .border-top, .border-bottom { border-color: rgba(212, 175, 55, 0.18) !important; } /* === CES: improve readability on gray tiles / cards === */ /* Target common Shopify/Dawn card patterns */ .multicolumn-card, .card, .rte .card, .grid .card { background: rgba(15, 15, 15, 0.92) !important; /* darken tile */ border: 1px solid rgba(212, 175, 55, 0.22) !important; border-radius: 14px !important; } /* Card inner text */ .multicolumn-card__info, .card__content, .card__information { color: rgba(245, 232, 192, 0.92) !important; /* warm off-white */ } /* Headings in cards */ .multicolumn-card__info h3, .card__heading, .card__information h3 { color: rgba(212, 175, 55, 0.95) !important; letter-spacing: 0.2px !important; } /* Paragraph text in cards */ .multicolumn-card__info p, .card__content p, .card__information p { font-size: 15px !important; line-height: 1.5 !important; color: rgba(245, 232, 192, 0.92) !important; } /* Slightly reduce gold intensity globally */ :root { --ces-gold-soft: rgba(212, 175, 55, 0.85); } a, .link, .accent, .ces-accent { color: var(--ces-gold-soft) !important; } /* ===== CES TILE READABILITY FIX ===== */ /* Commission Journey Tiles */ .multicolumn-card, .multicolumn-list__item, .card { background-color: #111111 !important; border: 1px solid rgba(212,175,55,0.18) !important; } /* Tile text */ .multicolumn-card__info, .card__content, .card__information { color: #F3E7B3 !important; } /* Tile headings */ .multicolumn-card__info h3, .card__heading { color: #D4AF37 !important; font-weight: 500 !important; } /* Tile paragraphs */ .multicolumn-card__info p, .card__information p { color: #E8DFAE !important; font-size: 15px !important; } /* ===== CES FAQ SOFTEN LINES ===== */ .accordion, details.accordion { border-color: rgba(212,175,55,0.15) !important; } .accordion summary { padding: 14px 0 !important; } /* Remove double line effect */ .accordion + .accordion { border-top: none !important; } /* ===== CES LUXURY TYPE SETTINGS ===== */ h1, h2, h3 { letter-spacing: 0.04em; } p { line-height: 1.6; } /* Improve section titles */ .section-header h2, h2 { color: #D4AF37; } /* ============================== CES — Commission Journey tiles ============================== */ /* Target the “Your Commission Journey” multicolumn cards */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background: rgba(12, 12, 12, 0.92) !important; /* deep charcoal */ color: rgba(245, 235, 195, 0.92) !important; /* warm readable body */ } /* Add a subtle premium border + depth */ .multicolumn .multicolumn-card, .multicolumn .card { border: 1px solid rgba(212, 175, 55, 0.22) !important; box-shadow: 0 10px 24px rgba(0,0,0,0.45) !important; border-radius: 14px !important; } /* Headings inside tiles */ .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading, .multicolumn .card__heading a { color: rgba(212, 175, 55, 0.95) !important; font-weight: 600 !important; letter-spacing: 0.03em !important; } /* Paragraph text inside tiles */ .multicolumn .multicolumn-card__info p, .multicolumn .card__information p { color: rgba(245, 235, 195, 0.90) !important; font-size: 15px !important; line-height: 1.65 !important; } /* If the “step number” circles are too faint, make them readable */ .multicolumn .multicolumn-card__info .caption, .multicolumn .multicolumn-card__info .rte strong { color: rgba(245, 235, 195, 0.92) !important; } /* ===================================================== CES PFMO MASTER STYLE BLOCK v1 Canvas Enchanted Studio — Global Theme Override Paste at VERY BOTTOM of base.css ===================================================== */ /* =========================== GLOBAL BACKGROUND =========================== */ body, .color-background-1, .color-background-2, .page-width, .shopify-section, .gradient, .section, .background, .main-content { background: #000000 !important; } /* =========================== TEXT HIERARCHY =========================== */ /* Primary Headings */ h1,h2,h3,h4 { color: rgba(212,175,55,0.96) !important; letter-spacing: .04em; font-weight: 600; } /* Body Text */ p, li, span, .rte { color: rgba(245,235,195,0.92) !important; line-height: 1.7; } /* Small text */ small, .caption { color: rgba(200,190,150,0.85) !important; } /* Links */ a { color: rgba(212,175,55,0.95) !important; } a:hover { color: rgba(255,215,110,1) !important; } /* =========================== NAVIGATION =========================== */ .header, .header-wrapper, .header__inline-menu { background:#000000 !important; } .header__menu-item { color:rgba(212,175,55,.95) !important; } /* =========================== ICONS =========================== */ svg, .icon { fill:rgba(212,175,55,.95) !important; } /* =========================== BUTTONS =========================== */ button, .button, .shopify-payment-button__button { background:rgba(212,175,55,.15) !important; border:1px solid rgba(212,175,55,.35) !important; color:rgba(212,175,55,.95) !important; border-radius:40px !important; letter-spacing:.05em; } button:hover, .button:hover { background:rgba(212,175,55,.28) !important; border:1px solid rgba(212,175,55,.55) !important; } /* =========================== SEPARATORS =========================== */ hr { border-color:rgba(212,175,55,.15) !important; } /* =========================== TABLES =========================== */ table { border-color:rgba(212,175,55,.18) !important; color:rgba(245,235,195,.9) !important; } td,th { border-color:rgba(212,175,55,.12) !important; } /* =========================== FAQ SECTION Cleaner less busy =========================== */ .accordion, details.accordion { border-color:rgba(212,175,55,.14) !important; background:#000 !important; } .accordion + .accordion { border-top:none !important; } .accordion summary { padding:16px 0 !important; color:rgba(212,175,55,.95) !important; } .accordion__content { padding-top:10px !important; padding-bottom:18px !important; color:rgba(245,235,195,.9) !important; } /* =========================== COMMISSION JOURNEY TILES =========================== */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background:rgba(10,10,10,.92) !important; color:rgba(245,235,195,.92) !important; } .multicolumn .multicolumn-card, .multicolumn .card { border:1px solid rgba(212,175,55,.22) !important; box-shadow:0 10px 24px rgba(0,0,0,.45) !important; border-radius:14px !important; } .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading { color:rgba(212,175,55,.96) !important; letter-spacing:.04em; } .multicolumn .multicolumn-card__info p { color:rgba(245,235,195,.9) !important; font-size:15px; line-height:1.7; } /* =========================== PRODUCT CARDS =========================== */ .card-wrapper, .card { background:#000 !important; border:1px solid rgba(212,175,55,.18) !important; } /* =========================== INPUT FIELDS =========================== */ input, textarea, select { background:#050505 !important; border:1px solid rgba(212,175,55,.25) !important; color:rgba(245,235,195,.95) !important; } /* =========================== FOOTER =========================== */ .footer { background:#000 !important; border-top:1px solid rgba(212,175,55,.18) !important; } /* =========================== REMOVE WHITE FLASHES =========================== */ body { background:#000 !important; } /* =========================== END PFMO BLOCK =========================== */ /* ========================================================= CES PFMO — Global Dark/Gold Override (FINAL STABLE) Paste at VERY BOTTOM of base.css ========================================================= */ /* --------------------------------- 1. CORE COLOR LOCK --------------------------------- */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* --------------------------------- 2. GLOBAL BACKGROUND LOCK --------------------------------- */ html, body, main, #MainContent, .content-for-layout, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .template-index, .template-collection, .template-product, .template-blog, .template-article, .template-search, .template-cart { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 3. COLOR SCHEME WRAPPERS --------------------------------- */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 4. REMOVE WHITE CARDS --------------------------------- */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .product-grid__item, .product-grid__card, .dialog-modal, .drawer { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 5. TEXT COLOR LOCK --------------------------------- */ h1,h2,h3,h4,h5,h6, p, span, div, label, li, a { color: #D4AF37 !important; } /* --------------------------------- 6. INPUT + FORMS --------------------------------- */ input, textarea, select { background-color: #000000 !important; color: #D4AF37 !important; border-color: #D4AF37 !important; } ::placeholder { color: #B8962E !important; } /* --------------------------------- 7. BUTTONS --------------------------------- */ .button, .button-secondary, button { background-color: #000000 !important; color: #D4AF37 !important; border: 1px solid #D4AF37 !important; } .button:hover, button:hover { background-color: #111111 !important; color: #FFD700 !important; } /* --------------------------------- 8. LINKS --------------------------------- */ a { color: #D4AF37 !important; } a:hover { color: #FFD700 !important; } /* --------------------------------- 9. SECTION BACKGROUND FIX --------------------------------- */ .section-background { background-color: #000000 !important; } /* --------------------------------- 10. SCROLLBAR GOLD --------------------------------- */ ::-webkit-scrollbar-thumb { background-color: #D4AF37 !important; } ::-webkit-scrollbar-thumb:hover { background-color: #FFD700 !important; } /* CES Gentle Realms Collection Grid Control */ .collection .grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 40px !important; max-width: 1200px; margin: auto; } /* Tablet */ @media screen and (max-width: 990px) { .collection .grid { grid-template-columns: repeat(2, 1fr) !important; } } /* Mobile */ @media screen and (max-width: 600px) { .collection .grid { grid-template-columns: 1fr !important; } } /* === CES PRODUCT IMAGE FIX === */ .card__media img, .card__inner img, .product-card img, .grid__item img, .media img, .card img { display:block !important; opacity:1 !important; visibility:visible !important; } .card__media { display:block !important; visibility:visible !important; } .card__inner { display:block !important; } .media { display:block !important; } /* LAUNCH MODE FIX: Collection pages showing products too low / invisible */ .template-collection main, .template-collection .main-content, .template-collection #MainContent { min-height: auto !important; } .template-collection .collection, .template-collection .collection__wrapper, .template-collection .collection-main, .template-collection .collection-grid, .template-collection .product-grid, .template-collection .grid.product-grid { margin-top: 0 !important; padding-top: 0 !important; } .template-collection .collection-description, .template-collection .rte, .template-collection .collection__description { margin-bottom: 18px !important; } /* Prevent giant dead space before the grid */ .template-collection .collection .page-width, .template-collection .collection .page-width > * { max-height: none !important; } /* LAUNCH MODE FIX: collection product card appears but image/text not rendering */ .template-collection .card, .template-collection .card__content, .template-collection .card__information, .template-collection .card__heading, .template-collection .price { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media, .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: cover !important; } /* LAUNCH FIX — product images not showing in collection grid */ .card__media { min-height: 280px !important; height: auto !important; } .card__media img { min-height: 280px !important; height: auto !important; width: 100% !important; object-fit: cover !important; } /* Ensure collection product images render */ .template-collection .card__media { min-height: 320px !important; } .template-collection .card__media img { min-height: 320px !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION PRODUCT IMAGES TO SHOW === */ .template-collection .card-wrapper, .template-collection .card, .template-collection .product-card-wrapper { position: relative !important; } .template-collection .card__media, .template-collection .card__media * { display: block !important; opacity: 1 !important; visibility: visible !important; max-height: none !important; } .template-collection .card__media { height: auto !important; min-height: 220px !important; overflow: visible !important; } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { width: 100% !important; height: auto !important; object-fit: cover !important; } /* If an overlay is covering the card, keep media clickable/visible */ .template-collection .card__inner, .template-collection .collection-card__inner, .template-collection .card__content { pointer-events: auto !important; position: relative !important; z-index: 2 !important; } .template-collection .card__link, .template-collection .full-unstyled-link { z-index: 5 !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION GRID IMAGES V1 === */ /* Paste at VERY BOTTOM of base.css */ .template-collection .card__media, .template-collection .card__inner, .template-collection .media { display: block !important; position: relative !important; overflow: hidden !important; min-height: 280px !important; /* gives the image area a body */ } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg, .template-collection .media img, .template-collection .media picture { display: block !important; opacity: 1 !important; visibility: visible !important; transform: none !important; filter: none !important; mix-blend-mode: normal !important; } .template-collection .card__media img, .template-collection .media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } /* PRODUCT IMAGE VISIBILITY FIX */ .card-gallery { overflow: visible !important; min-height: 400px !important; } .card-gallery img { display: block !important; width: 100% !important; height: auto !important; } .product-card, .card-wrapper, .card { min-height: 400px !important; } /* HOTFIX: force product deferred media posters / preview images to show */ .product-media__image, .deferred-media__poster, .deferred-media__poster-image, .deferred-media__poster img, .product__media img { opacity: 1 !important; visibility: visible !important; display: block !important; } /* If the poster/preview is absolutely positioned, ensure it has a box */ .deferred-media, .product-media, .product__media, .product__media-item, .media { position: relative !important; min-height: 1px !important; } /* Make sure the poster fills the media area */ .deferred-media__poster, .deferred-media__poster-image { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; } /* Make sure the image covers nicely */ .deferred-media__poster img, .deferred-media__poster-image img, .product-media__image img, .product__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } .template-collection .media::before, .template-collection .card__media::before, .template-collection .media::after, .template-collection .card__media::after { display: none !important; content: none !important; } /* === CES PATCH: remove collection tile overlay that hides images === */ .template-collection .card::before, .template-collection .card::after, .template-collection .card__inner::before, .template-collection .card__inner::after, .template-collection .card__media::before, .template-collection .card__media::after, .template-collection .media::before, .template-collection .media::after { content: none !important; display: none !important; } /* ensure media/image layer is on top */ .template-collection .card__media, .template-collection .media, .template-collection .card__media img, .template-collection .media img { position: relative !important; z-index: 2 !important; } /* FIX: quick-add overlay background covering product card media */ .template-collection quick-add-component.quick-add, .template-collection quick-add-component.quick-add::before, .template-collection quick-add-component.quick-add::after { background: transparent !important; background-color: transparent !important; } /* just in case the theme uses the class instead of the custom element */ .template-collection .quick-add { background: transparent !important; background-color: transparent !important; } /* CES DIAGNOSTIC: stop hover surfaces from painting over empty media on collection cards */ .template-collection .card, .template-collection .card__inner, .template-collection .product-card, .template-collection .product-card__inner, .template-collection .card-gallery { background: transparent !important; background-color: transparent !important; } /* If the theme uses a hover background variable, neutralize it on collection pages */ .template-collection { --card-bg-hover: transparent !important; } /* CES DIAGNOSTIC: force card media to render so we can see if it's being hidden/collapsed */ .template-collection .media, .template-collection .card__media, .template-collection .product-card__media, .template-collection .media img, .template-collection img { opacity: 1 !important; visibility: visible !important; display: block !important; height: auto !important; } /* CES HOTFIX: ensure resource cards are visible even if fadeIn keyframes/vars are missing */ .resource-card { opacity: 1 !important; animation: none !important; } /* CES FIX: ensure fadeIn exists + animation vars have safe defaults */ :root { --animation-speed-medium: 0.25s; --animation-timing-fade-in: ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
    • .video-placeholder-wrapper__poster-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 50%; display: flex; align-items: center; justify-content: center; } .deferred-media__poster-icon svg, .video-placeholder-wrapper__poster-icon svg { width: var(--button-size); height: var(--button-size); color: var(--color-white); filter: drop-shadow(var(--shadow-button)); &:hover { color: rgb(var(--color-white-rgb) / var(--opacity-80)); } @media screen and (min-width: 750px) { width: 4rem; height: 4rem; } } deferred-media[class] :is(.deferred-media__poster-button img, .deferred-media__poster-button ~ video) { /* only apply this on the video block not product media */ object-fit: cover; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } .button-shopify-xr { width: 100%; display: flex; justify-content: center; align-items: center; padding: var(--padding-md); } .button-shopify-xr > svg { width: var(--icon-size-sm); height: var(--icon-size-sm); margin-inline-end: var(--margin-md); } .button-shopify-xr[data-shopify-xr-hidden] { display: none; } /* Swatches */ .swatch { --color-border: rgb(var(--color-foreground-rgb) / var(--style-border-swatch-opacity)); --min-width-unitless: 15.9999; /* want to avoid division by 0 */ --min-height-unitless: 15.9999; /* want to avoid division by 0 */ --min-height: 16px; --min-width: 16px; /* mobile values */ --scaling-factor: 0.5; --max-swatch-size: 28px; --max-pill-size: 20px; --max-filter-size: 32px; /* From the settings */ --offset-swatch-width: calc(var(--variant-picker-swatch-width-unitless) - var(--min-width-unitless)); --offset-swatch-height: calc(var(--variant-picker-swatch-height-unitless) - var(--min-height-unitless)); /** Offset values are obtained from the following formulas: offset-width = width - min-width offset-height = height - min-height The offset-scaled-width and heigth are obtained by extending the line from [min,min] to [W,H] and taking the intersection with a square that starts at [min,min] and ends at [max,max]. The extending line forms right angle triangles with the [min,min]->[max,max] box that enable us to derive the following formulas We also want the result to always be smaller than the input (pdp > everywhere else) by some scaling factor. */ --offset-scaled-width: calc( var(--scaling-factor) * var(--offset-swatch-width) / var(--offset-swatch-height) * var(--offset-max-swatch-size) ); --offset-scaled-height: calc( var(--scaling-factor) * var(--offset-swatch-height) / var(--offset-swatch-width) * var(--offset-max-swatch-size) ); --offset-max-swatch-size: calc(var(--max-swatch-size) - var(--min-width)); /* width = min(m + sU, (m + s * W'/H' * M'), M) */ --swatch-width: min( calc(var(--min-width) + var(--scaling-factor) * var(--offset-swatch-width) * 1px), calc(var(--min-width) + var(--offset-scaled-width)), var(--max-swatch-size) ); /* height = min(m + sV, (m + s * H'/W' * M'), M) */ --swatch-height: min( calc(var(--min-height) + var(--scaling-factor) * var(--offset-swatch-height) * 1px), calc(var(--min-height) + var(--offset-scaled-height)), var(--max-swatch-size) ); display: block; background: var(--swatch-background); background-position: var(--swatch-focal-point, center); border-radius: var(--variant-picker-swatch-radius); border: var(--style-border-swatch-width) var(--style-border-swatch-style) var(--color-border); width: var(--swatch-width); height: var(--swatch-height); /* This is different than `background-size: cover` because we use `box-sizing: border-box`, * doing it like makes the background clip under the border without repeating. */ background-size: var(--swatch-width) var(--swatch-height); &.swatch--unavailable { border-style: dashed; } &.swatch--unscaled { /* for when you want fixed sizing (e.g. pdp) */ --swatch-width: var(--variant-picker-swatch-width); --swatch-height: var(--variant-picker-swatch-height); } &.swatch--filter { --swatch-width: var(--max-filter-size); --swatch-height: var(--max-filter-size); border-radius: var(--variant-picker-swatch-radius); } &.swatch--pill { --swatch-width: var(--max-pill-size); --swatch-height: var(--max-pill-size); border-radius: var(--variant-picker-swatch-radius); } /* swatches in filters and pills always have a border */ &.swatch--filter, &.swatch--pill { --style-border-swatch-width: var(--variant-picker-border-width); --style-border-swatch-style: var(--variant-picker-border-style); --color-border: rgb(var(--color-foreground-rgb) / var(--variant-picker-border-opacity)); } &.swatch--variant-image { background-size: cover; } @media screen and (min-width: 750px) { /* desktop values */ --max-swatch-size: 32px; --max-pill-size: 16px; --max-filter-size: 28px; --scaling-factor: 0.65; } } .variant-picker .variant-option--buttons label:has(.swatch) { border-radius: var(--variant-picker-swatch-radius); } .sticky-content { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } @media screen and (min-width: 750px) { .sticky-content--desktop, .sticky-content--desktop.full-height--desktop > .group-block { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } } .price, .compare-at-price, .unit-price { white-space: nowrap; } .unit-price { display: block; font-size: min(0.85em, var(--font-paragraph--size)); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } .tax-note.tax-note.tax-note { font-size: min(0.85em, var(--font-paragraph--size)); font-weight: var(--font-paragraph--weight); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } product-price.text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) > *:not(.tax-note) { margin-block: 0; } .compare-at-price { opacity: 0.4; text-decoration-line: line-through; text-decoration-thickness: 1.5px; } .card-gallery { position: relative; } @container (max-width: 70px) { .card-gallery:hover .quick-add__button { display: none; } } /* Drawer */ .drawer { background-color: var(--color-background); position: fixed; top: 0; left: 0; bottom: 0; width: var(--sidebar-width); z-index: var(--layer-raised); transform: translateX(-120%); transition: transform var(--animation-speed) var(--animation-easing); } .drawer[data-open='true'] { transform: translateX(0); } .drawer-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; } .drawer__header { display: flex; justify-content: space-between; align-items: center; padding: var(--drawer-header-block-padding) var(--drawer-inline-padding); } .drawer__title { font-size: var(--font-h2--size); margin: 0; } .drawer__close { width: var(--minimum-touch-target); height: var(--minimum-touch-target); } .drawer__content { display: block; padding: var(--drawer-content-block-padding) var(--drawer-inline-padding); width: 100%; } /* Background overlay */ .background-overlay { position: relative; &::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--background-overlay-color, rgb(0 0 0 / 15%)); } } /* Spacing style */ .spacing-style { --spacing-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --spacing-scale: var(--spacing-scale-default); } /* Must disable this, when you use these with calc and another unit type, things break — see logo.liquid */ /* stylelint-disable length-zero-no-unit */ --padding-block: 0px; --padding-block-start: var(--padding-block, 0px); --padding-block-end: var(--padding-block, 0px); --padding-inline: 0px; --padding-inline-start: var(--padding-inline, 0px); --padding-inline-end: var(--padding-inline, 0px); --margin-block: 0px; --margin-block-start: var(--margin-block, 0px); --margin-block-end: var(--margin-block, 0px); --margin-inline: 0px; --margin-inline-start: var(--margin-inline, 0px); --margin-inline-end: var(--margin-inline, 0px); } .spacing-style, .inherit-spacing { padding-block: calc(var(--padding-block-start) + var(--section-top-offset, 0px)) var(--padding-block-end); padding-inline: var(--padding-inline-start) var(--padding-inline-end); margin-block: var(--margin-block-start) var(--margin-block-end); margin-inline: var(--margin-inline-start) var(--margin-inline-end); } /* Size style */ .size-style { width: var(--size-style-width-mobile, var(--size-style-width)); height: var(--size-style-height-mobile, var(--size-style-height)); @media screen and (min-width: 750px) { width: var(--size-style-width); height: var(--size-style-height); } } /* Custom Typography style */ .custom-typography, .custom-typography > * { font-family: var(--font-family); font-weight: var(--font-weight); text-transform: var(--text-transform); text-wrap: var(--text-wrap); line-height: var(--line-height); letter-spacing: var(--letter-spacing); } .custom-typography { h1 { line-height: var(--line-height--display, var(--line-height)); } h2, h3, h4 { line-height: var(--line-height--heading, var(--line-height)); } p { line-height: var(--line-height--body, var(--line-height)); } } .custom-font-size, .custom-font-size > * { font-size: var(--font-size); } .custom-font-weight, .custom-font-weight > * { font-weight: var(--weight); } /* Border override style */ .border-style { border-width: var(--border-width); border-style: var(--border-style); border-color: var(--border-color); border-radius: var(--border-radius); } /* Gap scaling style */ .gap-style, .layout-panel-flex { --gap-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --gap-scale: var(--spacing-scale-default); } } .layout-panel-flex { display: flex; gap: var(--gap); height: 100%; } .layout-panel-flex--row { flex-flow: row var(--flex-wrap); justify-content: var(--horizontal-alignment); align-items: var(--vertical-alignment); } .layout-panel-flex--column { flex-flow: column var(--flex-wrap); align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment); } @media screen and (max-width: 749px) { .mobile-column { flex-flow: column nowrap; align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment-mobile); } .layout-panel-flex--row:not(.mobile-column) { flex-wrap: var(--flex-wrap-mobile); > .menu { flex: 1 1 min-content; } > .text-block { flex: 1 1 var(--max-width--display-tight); } > .image-block { flex: 1 1 var(--size-style-width-mobile-min); } > .button { flex: 0 0 fit-content; } } } @media (min-width: 750px) { .layout-panel-flex { flex-direction: var(--flex-direction); } } /* Form fields */ .field { position: relative; width: 100%; display: flex; transition: box-shadow var(--animation-speed) ease; } .field__input { flex-grow: 1; text-align: left; border-radius: var(--style-border-radius-inputs); transition: box-shadow var(--animation-speed) ease, background-color var(--animation-speed) ease; padding: var(--input-padding); box-shadow: var(--input-box-shadow); background-color: var(--color-input-background); color: var(--color-input-text); border: none; outline: none; font-size: var(--font-paragraph--size); &:autofill { background-color: var(--color-input-background); color: var(--color-input-text); } } .field__input:is(:focus, :hover) { box-shadow: var(--input-box-shadow-focus); background-color: var(--color-input-hover-background); } .field__input--button-radius { border-radius: var(--style-border-radius-buttons-primary); } .field__input--button-padding { padding-inline: var(--padding-3xl); } .field__label { color: rgb(var(--color-input-text-rgb) / var(--opacity-80)); font-size: var(--font-paragraph--size); left: var(--input-padding-x); top: 50%; transform: translateY(-50%); margin-bottom: 0; pointer-events: auto; position: absolute; transition: top var(--animation-speed) ease, font-size var(--animation-speed) ease; } /* RTE styles */ .rte, .shopify-policy__title { :is(h1, h2, h3, h4, h5, h6) { margin-block: clamp(1.5rem, 1em * 3.3, 2.5rem) clamp(1rem, 1em * 0.25, 2rem); } :first-child:is(p, h1, h2, h3, h4, h5, h6), :first-child:empty + :is(p, h1, h2, h3, h4, h5, h6) { margin-block-start: 0; } ul, ol { margin-block-start: 0; padding-inline-start: 1.5em; } /* Only apply margin-block-end to the higher level list, not nested lists */ :is(ul, ol):not(:is(ul, ol) :is(ul, ol)) { margin-block-end: 1em; } blockquote { margin-inline: 1.5em 2.3em; margin-block: 3.8em; padding-inline-start: 0.8em; border-inline-start: 1.5px solid rgb(var(--color-foreground-rgb) / var(--opacity-25)); font-style: italic; font-weight: 500; } .rte-table-wrapper { overflow-x: auto; } table { /* stylelint-disable-next-line declaration-no-important */ width: 100% !important; border-collapse: collapse; } tr:not(:has(td)), thead { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5)); font-weight: bold; text-transform: uppercase; } tr:has(td) { border-bottom: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-10)); } th, td { text-align: start; padding-inline: var(--padding-md); padding-block: var(--padding-sm); } } .shopify-policy__container { padding-block: var(--padding-xl); } .checkbox { --checkbox-size: 22px; --checkbox-top: 50%; --checkbox-left: 1.5px; --checkbox-offset: 3px; --checkbox-border-radius: 7px; --checkbox-label-padding: 8px; --checkbox-path-opacity: 0; --checkbox-cursor: pointer; --checkbox-border: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55)); position: relative; display: flex; align-items: center; @media screen and (min-width: 750px) { --checkbox-size: 16px; --checkbox-border-radius: 5px; --checkbox-label-padding: 6px; } &:has(.checkbox__input:checked) { --checkbox-path-opacity: 1; } &.checkbox--disabled { --checkbox-cursor: not-allowed; } } .checkbox__input { position: absolute; opacity: 0; margin: 0; width: var(--checkbox-size); height: var(--checkbox-size); /* Outline is on the SVG instead, to allow it to have border-radius */ &:focus-visible { outline: none; } &:focus-visible + .checkbox__label .icon-checkmark { outline: var(--focus-outline-width) solid currentcolor; outline-offset: var(--focus-outline-offset); } &:checked + .checkbox__label .icon-checkmark { background-color: var(--color-foreground); border-color: var(--color-foreground); } &:disabled + .checkbox__label .icon-checkmark { background-color: var(--input-disabled-background-color); border-color: var(--input-disabled-border-color); } } .checkbox__label { position: relative; display: inline-flex; cursor: var(--checkbox-cursor); line-height: var(--checkbox-size); min-width: var(--minimum-touch-target); } .checkbox .icon-checkmark { height: var(--checkbox-size); width: var(--checkbox-size); flex-shrink: 0; border: var(--checkbox-border); border-radius: var(--checkbox-border-radius); background-color: var(--color-background); } .checkbox__label-text { padding-inline-start: var(--checkbox-label-padding); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .checkbox .icon-checkmark path { stroke: var(--color-background); opacity: var(--checkbox-path-opacity); transition: opacity var(--animation-speed) var(--animation-easing); } .checkbox__input:disabled + .checkbox__label { color: var(--input-disabled-text-color); } /* Add to cart button */ .button[id^='BuyButtons-ProductSubmitButton-'] { position: relative; overflow: hidden; } /* Cart bubble */ .cart-bubble { --cart-padding: 0.2em; position: relative; width: 20px; aspect-ratio: 1; border-radius: 50%; border-width: 0; display: flex; line-height: normal; align-items: center; justify-content: center; color: var(--color-primary-button-text); padding-inline: var(--cart-padding); } .cart-bubble__background { position: absolute; inset: 0; background-color: var(--color-primary-button-background); border-radius: var(--style-border-radius-lg); } .cart-bubble__text { font-size: var(--font-size--3xs); z-index: var(--layer-flat); line-height: 1; display: flex; align-items: center; justify-content: center; } /* Quantity selector */ .quantity-selector { --quantity-selector-width: 124px; display: flex; justify-content: space-between; align-items: center; color: var(--color-input-text); background-color: var(--color-input-background); border: var(--style-border-width-inputs) solid var(--color-input-border); border-radius: var(--style-border-radius-inputs); flex: 1 1 var(--quantity-selector-width); align-self: stretch; transition: background-color var(--animation-speed) var(--animation-easing); &:hover { background-color: var(--color-input-hover-background); } } .product-form-buttons:has(.add-to-cart-button.button-secondary) .quantity-selector { border-radius: var(--style-border-radius-buttons-secondary); } .quantity-selector :is(.quantity-minus, .quantity-plus) { /* Unset button styles */ padding: 0; background: transparent; box-shadow: none; display: flex; justify-content: center; align-items: center; cursor: pointer; width: var(--minimum-touch-target); height: var(--minimum-touch-target); flex-shrink: 0; color: var(--color-input-text); } .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-inputs); border-end-start-radius: var(--style-border-radius-inputs); } .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-inputs); border-end-end-radius: var(--style-border-radius-inputs); } .product-details .quantity-selector { border-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-buttons-primary); border-end-start-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-buttons-primary); border-end-end-radius: var(--style-border-radius-buttons-primary); } .quantity-selector .svg-wrapper { transition: transform var(--animation-speed) var(--animation-easing); } .quantity-selector svg { width: var(--icon-size-xs); height: var(--icon-size-xs); } :is(.quantity-minus, .quantity-plus):active .svg-wrapper { transform: scale(0.9); } .quantity-selector input[type='number'] { margin: 0; text-align: center; border: none; appearance: none; max-width: calc(var(--quantity-selector-width) - var(--minimum-touch-target) * 2); border-radius: var(--style-border-radius-buttons); color: var(--color-input-text); background-color: transparent; } /* Chrome, Safari, Edge, Opera */ .quantity-selector input[type='number']::-webkit-inner-spin-button, .quantity-selector input[type='number']::-webkit-outer-spin-button { appearance: none; } /* Firefox */ .quantity-selector input[type='number'] { appearance: textfield; } /* Pills (used in facets and predictive search) */ .pills__pill { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15)); color: var(--color-foreground); display: flex; justify-content: space-between; align-items: center; gap: var(--gap-sm); min-width: 48px; padding: 6px 12px; border-radius: var(--style-border-radius-pills); cursor: pointer; background-color: var(--pills-pill-background-color); transition: background-color var(--animation-speed) var(--animation-easing); &:hover { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); } @media screen and (max-width: 749px) { padding: var(--padding-xs) var(--padding-md); } } .pills__pill > .svg-wrapper { --close-icon-opacity: 0.4; --icon-stroke-width: 1px; color: var(--color-foreground); } .pills__pill--swatch { @media screen and (max-width: 749px) { padding-inline-start: var(--padding-sm); } } .pills__pill--swatch .swatch { margin-right: -4px; } .pills__pill--desktop-small { @media screen and (min-width: 750px) { font-size: var(--font-size--xs); } } /* Fly to cart animation */ fly-to-cart { --offset-y: 10px; position: fixed; width: var(--width, 40px); height: var(--height, 40px); left: 0; top: 0; z-index: calc(infinity); pointer-events: auto; border-radius: var(--style-border-radius-buttons-primary); overflow: hidden; object-fit: cover; background-size: cover; background-position: center; opacity: 0; background-color: var(--color-foreground); translate: var(--start-x, 0) var(--start-y, 0); transform: translate(-50%, -50%); animation-name: travel-x, travel-y, travel-scale; animation-timing-function: var(--x-timing), var(--y-timing), var(--scale-timing); animation-duration: 0.6s; animation-composition: accumulate; animation-fill-mode: both; } fly-to-cart.fly-to-cart--main { --x-timing: cubic-bezier(0.7, -5, 0.98, 0.5); --y-timing: cubic-bezier(0.15, 0.57, 0.9, 1.05); --scale-timing: cubic-bezier(0.85, 0.05, 0.96, 1); } fly-to-cart.fly-to-cart--quick { --x-timing: cubic-bezier(0, -0.1, 1, 0.32); --y-timing: cubic-bezier(0, 0.92, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); animation-duration: 0.6s; } fly-to-cart.fly-to-cart--sticky { --x-timing: cubic-bezier(0.98, -0.8, 0.92, 0.5); --y-timing: cubic-bezier(0.14, 0.56, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); --radius: var(--style-border-radius-buttons-primary); @media (max-width: 749px) { --x-timing: cubic-bezier(0.98, -0.1, 0.92, 0.5); } animation-duration: 0.8s; } @keyframes travel-scale { 0% { opacity: var(--start-opacity, 1); } 5% { opacity: 1; } 100% { border-radius: 50%; opacity: 1; transform: translate(-50%, calc(-50% + var(--offset-y))) scale(0.25); } } @keyframes travel-x { to { translate: var(--travel-x, 0) 0; } } @keyframes travel-y { to { translate: 0 var(--travel-y, 0); } } /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* Animation declarations - to be kept at the bottom of the file for ease of find */ @keyframes grow { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } @keyframes move-and-fade { from { transform: translate(var(--start-x, 0), var(--start-y, 0)); opacity: var(--start-opacity, 0); } to { transform: translate(var(--end-x, 0), var(--end-y, 0)); opacity: var(--end-opacity, 1); } } @keyframes slideInTopViewTransition { from { transform: translateY(100px); } } @keyframes elementSlideInTop { from { margin-top: var(--padding-sm); opacity: 0; } to { margin-top: 0; opacity: 1; } } @keyframes elementSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } @keyframes elementSlideInBottom { from { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes elementSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } } @keyframes thumbnailsSlideInTop { from { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } to { transform: translateY(-50%); opacity: 1; } } @keyframes thumbnailsSlideOutTop { from { transform: translateY(-50%); opacity: 1; } to { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } } @keyframes thumbnailsSlideInBottom { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes thumbnailsSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(100%); opacity: 0; } } @keyframes search-element-slide-in-bottom { 0% { transform: translateY(20px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes search-element-slide-out-bottom { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(20px); opacity: 0; } } @keyframes dialogZoom { from { opacity: 1; transform: scale(1) translateY(0); } to { opacity: 0; transform: scale(0.95) translateY(1em); } } @keyframes thumbnail-selected { 0%, 100% { box-shadow: 0 0 0 2px transparent; scale: 0.9; } 50% { box-shadow: 0 0 0 2px #000; scale: 1; } } @keyframes backdropFilter { from { backdrop-filter: brightness(1); } to { backdrop-filter: brightness(0.75); } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes modalSlideInTop { from { transform: translateY(var(--padding-sm)); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes modalSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } .bubble { display: inline-flex; height: calc(var(--variant-picker-swatch-height) / 1.5); font-size: var(--font-size--xs); border-radius: 20px; min-width: 20px; padding: 0 6px; background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); color: var(--color-foreground); align-items: center; justify-content: center; } .bubble svg { width: 12px; height: 12px; } .top-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(-50px 0 0 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .top-shadow--mobile::before { display: none; } } .bottom-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(0 0 -50px 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .bottom-shadow--mobile::before { display: none; } } .video-placeholder-wrapper { position: relative; width: 100%; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } :not(deferred-media) > .video-placeholder-wrapper { width: var(--video-placeholder-width); } .video-placeholder-wrapper > * { width: 100%; height: 100%; object-fit: cover; object-position: center; } /* * Slideshow Component */ slideshow-component { --cursor: grab; --slide-offset: 6px; position: relative; display: flex; flex-direction: column; timeline-scope: var(--slideshow-timeline); } slideshow-component.slideshow--content-below-media slideshow-slide { display: grid; } .slideshow--content-below-media slideshow-slide :is(.slide__image-container, .slide__content) { position: static; } .slideshow--content-below-media slideshow-slide { grid-template-rows: var(--grid-template-rows); @media screen and (min-width: 750px) { grid-template-rows: var(--grid-template-rows-desktop); } } .slide__content { opacity: 0; animation: slide-reveal both linear; animation-timeline: var(--slideshow-timeline); @media (prefers-reduced-motion) { opacity: 1; animation: none; } } .slideshow--single-media { --cursor: default; } a slideshow-component { --cursor: pointer; } /* * Slideshow Slides */ slideshow-slides { width: 100%; position: relative; display: flex; overflow-x: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-color: transparent transparent; scrollbar-width: none; gap: var(--slideshow-gap, 0); cursor: var(--cursor); min-height: var(--slide-min-height); @media (prefers-reduced-motion) { scroll-behavior: auto; } &::-webkit-scrollbar { width: 0; } &::-webkit-scrollbar-track { background: transparent; } &::-webkit-scrollbar-thumb { background: transparent; border: none; } @media screen and (min-width: 750px) { min-height: var(--slide-min-height-desktop); } } slideshow-component[disabled='true'] slideshow-slides { overflow: hidden; } slideshow-component[mobile-disabled] slideshow-slides { @media screen and (max-width: 749px) { overflow: hidden; } } slideshow-slide { position: relative; scroll-snap-align: center; width: var(--slide-width, 100%); max-height: 100%; flex-shrink: 0; view-timeline-name: var(--slideshow-timeline); view-timeline-axis: inline; content-visibility: auto; contain-intrinsic-size: auto none; border-radius: var(--corner-radius, 0); overflow: hidden; slideshow-component[actioned] &, &[aria-hidden='false'] { content-visibility: visible; } slideshow-component slideshow-slide:not([aria-hidden='false']) { content-visibility: hidden; } &[hidden]:not([reveal]) { display: none; } /* Make inactive slides appear clickable */ &[aria-hidden='true'] { cursor: pointer; } } slideshow-slide .slide__image-container--rounded { border-radius: var(--corner-radius, 0); } slideshow-slide.product-media-container--tallest { content-visibility: visible; } @media screen and (max-width: 749px) { /* Media gallery has a peeking slide on the right side always, and on the left side when the current slide is the last one */ .media-gallery--hint :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']:last-of-type), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } } /* * Collection and Resource list carousels have peeking slides on both sides. * Card galleries preview the next or previous images on 'pointerenter', so we * try to kick load them beforehand (they are lazy loaded otherwise). */ :is(.resource-list__carousel, .card-gallery) :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } /* * Be specific about HTML children structure to avoid targeting nested slideshows. * Ensure that the content is 'visible' while scrolling instead of 'auto' to avoid issues in Safari. */ slideshow-component:is([dragging], [transitioning], :hover) > slideshow-container > slideshow-slides > slideshow-slide { content-visibility: visible; } slideshow-slides[gutters*='start'] { padding-inline-start: var(--gutter-slide-width, 0); scroll-padding-inline-start: var(--gutter-slide-width, 0); } slideshow-slides[gutters*='end'] { padding-inline-end: var(--gutter-slide-width, 0); } slideshow-component[dragging] { --cursor: grabbing; * { pointer-events: auto; } } slideshow-component[dragging] slideshow-arrows { display: none; } slideshow-container { width: 100%; display: block; position: relative; grid-area: container; container-type: inline-size; } @media screen and (min-width: 750px) { .media-gallery--carousel slideshow-component:has(slideshow-controls[thumbnails]) { &:has(slideshow-controls[pagination-position='right']) { display: grid; grid-template: 'container controls' auto 'arrows controls' min-content / 1fr auto; } &:has(slideshow-controls[pagination-position='left']) { display: grid; grid-template: 'controls container' auto 'controls arrows' min-content / auto 1fr; } slideshow-controls[pagination-position='left'] { order: -1; } } } /* Slideshow Play/Pause */ .slideshow-control:is(.icon-pause, .icon-play) { color: var(--color-active); &:hover { color: var(--color-hover); } svg { display: none; } } slideshow-component:is([autoplay]) { &:is([paused]) { .icon-play > svg { display: block; } } &:not([paused]) { .icon-pause > svg { display: block; } } } /* Slideshow Arrows */ slideshow-arrows { --cursor-previous: w-resize; --cursor-next: e-resize; position: absolute; inset: 0; display: flex; z-index: var(--layer-heightened); pointer-events: auto; mix-blend-mode: difference; align-items: flex-end; &[position='left'] { justify-content: flex-start; padding-inline: var(--padding-xs); } &[position='right'] { justify-content: flex-end; padding-inline: var(--padding-xs); } &[position='center'] { justify-content: space-between; align-items: center; } } slideshow-arrows:has(.slideshow-control--shape-square), slideshow-arrows:has(.slideshow-control--shape-circle) { mix-blend-mode: normal; } slideshow-component[disabled='true'] slideshow-arrows { display: none; } slideshow-arrows .slideshow-control { pointer-events: auto; opacity: 0; min-height: var(--minimum-touch-target); min-width: var(--minimum-touch-target); padding: 0 var(--padding-xs); color: var(--color-white); } slideshow-arrows .slideshow-control.slideshow-control--style-none { display: none; } .media-gallery--carousel slideshow-arrows .slideshow-control { padding-inline: 0 var(--padding-md); opacity: 1; } .card-gallery slideshow-arrows .slideshow-control { /* Align icons with quick-add button */ padding-inline: var(--padding-xl); @container (max-width: 249px) { padding-inline: 0 var(--padding-sm); } } :not(.media-gallery--carousel) > :is(slideshow-component:hover, slideshow-component:focus-within):not(:has(slideshow-controls:hover)) > slideshow-container > slideshow-arrows .slideshow-control { animation: arrowsSlideIn var(--animation-speed) var(--animation-easing) forwards; } @keyframes arrowsSlideIn { from { transform: translate(var(--padding-sm), 0); opacity: 0; } to { opacity: 1; } } @keyframes slide-reveal { 0% { translate: calc(var(--slideshow-slide-offset, 6) * 1rem) 0; opacity: 0; } 50% { opacity: 1; } 100% { translate: calc(var(--slideshow-slide-offset, 6) * -1rem) 0; opacity: 0; } } .block-resource-list { display: flex; flex-direction: column; row-gap: var(--gap); min-width: 0; min-height: 0; container-type: inline-size; container-name: resource-list; } .section-resource-list, .section-carousel { row-gap: var(--gap); } .section-resource-list__content { display: flex; flex-direction: column; align-items: var(--horizontal-alignment); gap: var(--gap); width: 100%; } .section-resource-list__content:empty { display: none; } .section-resource-list__header:is(:empty, :has(.group-block-content:empty)), .section-resource-list__content:empty { display: none; } .section-resource-list.section--full-width product-card-link > .group-block, .section-carousel.section--full-width product-card-link > .group-block { @media screen and (max-width: 749px) { padding-inline: max(var(--padding-xs), var(--padding-inline-start)) max(var(--padding-xs), var(--padding-inline-end)); } } .resource-list--carousel-mobile { display: block; @media screen and (min-width: 750px) { display: none; } } .resource-list { --resource-list-mobile-gap-max: 9999px; --resource-list-column-gap: min(var(--resource-list-column-gap-desktop), var(--resource-list-mobile-gap-max)); --resource-list-row-gap: min(var(--resource-list-row-gap-desktop), var(--resource-list-mobile-gap-max)); width: 100%; @media screen and (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } @container resource-list (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } } .resource-list--grid { display: grid; gap: var(--resource-list-row-gap) var(--resource-list-column-gap); grid-template-columns: var(--resource-list-columns-mobile); @media screen and (min-width: 750px) { grid-template-columns: var(--resource-list-columns); } @container resource-list (max-width: 449px) { grid-template-columns: var(--resource-list-columns-mobile); } @container resource-list(min-width: 450px) and (max-width: 749px) { --resource-list-columns-per-row: 3; grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); /* Avoid orphan in last row when there are 4, 7, or 10 items */ &:has(.resource-list__item:first-child:nth-last-child(3n + 1)), /* Clean two full rows when there are 8 items */ &:has(.resource-list__item:first-child:nth-last-child(8n)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 750px) { grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); &:has(.resource-list__item:first-child:nth-last-child(n + 9)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(n + 7):nth-last-child(-n + 8)) { --resource-list-columns-per-row: 4; } &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 3; } &:has(.resource-list__item:first-child:nth-last-child(5)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(-n + 4)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 1200px) { &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 6; } } } .resource-list__item { height: 100%; color: var(--color-foreground); text-decoration: none; } .resource-list__carousel { --slide-width: 60vw; width: 100%; position: relative; container-type: inline-size; container-name: resource-list-carousel; .slideshow-control[disabled] { display: none; } .slideshow-control--next { margin-inline-start: auto; } } @container resource-list-carousel (max-width: 749px) { .resource-list__carousel .resource-list__slide { --slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); } } @container resource-list-carousel (min-width: 750px) { .resource-list__carousel .resource-list__slide { --section-slide-width: calc( (100% - (var(--resource-list-column-gap) * (var(--column-count) - 1)) - var(--peek-next-slide-size)) / var(--column-count) ); --fallback-slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); --slide-width: var(--section-slide-width, var(--fallback-slide-width)); } } .resource-list__carousel slideshow-slides { gap: var(--resource-list-column-gap); /* Add padding to prevent hover animations from being clipped in slideshow 15px accommodates: - Scale effect (9px on each side from 1.03 scale) - Lift effect (4px upward movement) - Shadow (15px spread with -5px offset) Using 16px for better alignment with our spacing scale */ margin-block: -16px; padding-block: 16px; } .resource-list__carousel slideshow-arrows { padding-inline: var(--util-page-margin-offset); } .resource-list__carousel .resource-list__slide { width: var(--slide-width); flex: 0 0 auto; scroll-snap-align: start; min-width: 0; } /* Base styles */ .group-block, .group-block-content { position: relative; } .group-block:has(> video-background-component), .group-block:has(> .background-image-container) { overflow: hidden; } .group-block-content { height: 100%; width: 100%; } /* Container styles */ .section-content-wrapper.section-content-wrapper:where(.layout-panel-flex) .group-block--fill { flex: 1; } /* Flex behavior for width variants */ .layout-panel-flex--row > .group-block--width-fit { flex: 0; } .layout-panel-flex--row > .group-block--width-fill { flex: 1; } .layout-panel-flex--row > .group-block--width-custom { flex-basis: var(--size-style-width); } /* Dimension utilities - Height */ .group-block--height-fit { height: auto; } .group-block--height-custom, .group-block--height-fill { height: var(--size-style-height); } /* Flex behavior for height variants */ .layout-panel-flex--column > .group-block--height-fit { flex: 0 1 auto; } .layout-panel-flex--column > .group-block--height-fill { flex: 1; } .layout-panel-flex--column > .group-block--height-custom { flex-basis: var(--size-style-height); } accordion-custom { details { &::details-content, .details-content { block-size: 0; overflow-y: clip; opacity: 0; interpolate-size: allow-keywords; transition: content-visibility var(--animation-speed-slow) allow-discrete, padding-block var(--animation-speed-slow) var(--animation-easing), opacity var(--animation-speed-slow) var(--animation-easing), block-size var(--animation-speed-slow) var(--animation-easing); } /* Disable transitions when the content toggle is not caused by the direct user interaction, e.g. opening the filters on mobile. */ &:not(:focus-within)::details-content, &:not(:focus-within) .details-content { transition: none; } &:not([open]) { &::details-content, .details-content { padding-block: 0; } } &[open] { &::details-content, .details-content { opacity: 1; block-size: auto; @starting-style { block-size: 0; opacity: 0; overflow-y: clip; } &:focus-within { overflow-y: visible; } } } } } accordion-custom[data-disable-on-mobile='true'] summary { @media screen and (max-width: 749px) { cursor: auto; } } accordion-custom[data-disable-on-desktop='true'] summary { @media screen and (min-width: 750px) { cursor: auto; } } text-component { --shimmer-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50)); --shimmer-color-light: rgb(var(--color-foreground-rgb) / var(--opacity-10)); --shimmer-speed: 1.25s; display: inline-block; position: relative; transition: color var(--animation-speed-slow) ease; line-height: 1; &::after { content: attr(value); position: absolute; inset: 0; color: transparent; opacity: 0; transition: opacity var(--animation-speed-slow) var(--animation-easing); pointer-events: auto; background-image: linear-gradient( -85deg, var(--shimmer-text-color) 10%, var(--shimmer-color-light) 50%, var(--shimmer-text-color) 90% ); background-clip: text; background-size: 200% 100%; background-position: 100% 0; place-content: center; } &[shimmer] { color: transparent; &::after { opacity: 1; animation: text-shimmer var(--shimmer-speed) infinite linear; } } } @keyframes text-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } /* Animation transitions */ .transition-background-color { transition: background-color var(--animation-speed-medium) ease-in-out; } .transition-transform { transition: transform var(--animation-speed-medium) var(--animation-timing-bounce); } .transition-border-color { transition: border-color var(--animation-speed-medium) var(--animation-timing-hover); } /* Global scrollbar styles */ /* Webkit browsers */ ::-webkit-scrollbar { width: 20px; } ::-webkit-scrollbar-track { background-color: transparent; } ::-webkit-scrollbar-thumb { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-40)); border-radius: 20px; border: 6px solid transparent; background-clip: content-box; transition: background-color 0.2s; } ::-webkit-scrollbar-thumb:hover { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-60)); } @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } } /* Product card title truncation - applied only to zoom-out view */ [product-grid-view='zoom-out'] :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } /* Product card title truncation - applied on mobile regardless of view */ @media screen and (max-width: 749px) { :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } } .product-card:hover, .collection-card:hover, .resource-card:hover, .predictive-search-results__card--product:hover, .predictive-search-results__card:hover { position: relative; z-index: var(--layer-raised); transition: transform var(--hover-transition-duration) var(--hover-transition-timing), box-shadow var(--hover-transition-duration) var(--hover-transition-timing); } .header .product-card:hover, .header .collection-card:hover, .header .resource-card:hover, .header-drawer .product-card:hover, .header-drawer .collection-card:hover, .header-drawer .resource-card:hover { z-index: auto; transform: none; box-shadow: none; } /* Prevent iOS zoom on input focus by ensuring minimum 16px font size on mobile */ @media screen and (max-width: 1200px) { input, textarea, select, /* Higher specificity to override type preset classes like .paragraph, .h1, etc. */ .paragraph.paragraph input, .paragraph.paragraph textarea, .paragraph.paragraph select, .h1.h1 input, .h1.h1 textarea, .h1.h1 select, .h2.h2 input, .h2.h2 textarea, .h2.h2 select, .h3.h3 input, .h3.h3 textarea, .h3.h3 select, .h4.h4 input, .h4.h4 textarea, .h4.h4 select, .h5.h5 input, .h5.h5 textarea, .h5.h5 select, .h6.h6 input, .h6.h6 textarea, .h6.h6 select { font-size: max(1rem, 100%); } } /* ========================================================= CES PFMO — Global Dark/Gold Override (variable-driven) Paste at BOTTOM of base.css ========================================================= */ /* 1) Hard lock the theme variables that your CSS already uses */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; /* if your theme uses rgb variables for opacity mixes */ --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; /* optional: borders/shadows tuned darker */ --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* 2) Some themes scope colors through scheme wrappers (Dawn-style) */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background: #000000 !important; color: #D4AF37 !important; } /* 3) Absolute “white killers” for pages + rich text + section background layers */ html, body, #MainContent, .content-for-layout, main, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .main-page, .main-page .rte, .page .rte, .rte, .shopify-policy__container { background: #000000 !important; color: #D4AF37 !important; } /* 4) Headings + general text (kept tight, no overkill) */ h1, h2, h3, h4, h5, h6 { color: #E6C76A !important; } p, li, span, small, label, legend { color: #D4AF37 !important; } /* 5) Links */ a, a:visited { color: #C9A227 !important; } a:hover { color: #FFD700 !important; } /* 6) Cards/containers that like to default white */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .drawer, .dialog-modal, .cart__summary-container { background: #050505 !important; color: #D4AF37 !important; } /* 7) Inputs */ input, textarea, select { background: #0f0f0f !important; color: #D4AF37 !important; border-color: rgba(212,175,55,0.35) !important; } /* 8) Buttons (keeps theme structure, forces CES palette) */ .button, .button-secondary, .btn, button, button.shopify-payment-button__button--unbranded { background: #0d0d0d !important; color: #D4AF37 !important; box-shadow: inset 0 0 0 1px rgba(212,175,55,0.55) !important; border: none !important; } .button:hover, .button-secondary:hover, button:hover, button.shopify-payment-button__button--unbranded:hover:not([disabled]) { background: #D4AF37 !important; color: #000000 !important; } /* 9) BIG ONE: your CSS literally sets this to white */ zoom-dialog dialog { background: #000000 !important; color: #D4AF37 !important; } /* 10) Table headers & subtle fills inside RTE should not go grey/white */ .rte thead, .rte tr:not(:has(td)) { background-color: rgba(212,175,55,0.08) !important; } /* === CES: reduce "busy" line clutter === */ /* FAQ / accordion: soften borders and add breathing room */ .accordion, details.accordion { border-color: rgba(212, 175, 55, 0.25) !important; /* softer gold */ } .accordion + .accordion, details.accordion + details.accordion { margin-top: 10px !important; } /* If your theme uses summary rows with top/bottom borders */ .accordion summary, details.accordion summary { padding-top: 12px !important; padding-bottom: 12px !important; } /* Reduce heavy section dividers */ hr, .section-divider, .border-top, .border-bottom { border-color: rgba(212, 175, 55, 0.18) !important; } /* === CES: improve readability on gray tiles / cards === */ /* Target common Shopify/Dawn card patterns */ .multicolumn-card, .card, .rte .card, .grid .card { background: rgba(15, 15, 15, 0.92) !important; /* darken tile */ border: 1px solid rgba(212, 175, 55, 0.22) !important; border-radius: 14px !important; } /* Card inner text */ .multicolumn-card__info, .card__content, .card__information { color: rgba(245, 232, 192, 0.92) !important; /* warm off-white */ } /* Headings in cards */ .multicolumn-card__info h3, .card__heading, .card__information h3 { color: rgba(212, 175, 55, 0.95) !important; letter-spacing: 0.2px !important; } /* Paragraph text in cards */ .multicolumn-card__info p, .card__content p, .card__information p { font-size: 15px !important; line-height: 1.5 !important; color: rgba(245, 232, 192, 0.92) !important; } /* Slightly reduce gold intensity globally */ :root { --ces-gold-soft: rgba(212, 175, 55, 0.85); } a, .link, .accent, .ces-accent { color: var(--ces-gold-soft) !important; } /* ===== CES TILE READABILITY FIX ===== */ /* Commission Journey Tiles */ .multicolumn-card, .multicolumn-list__item, .card { background-color: #111111 !important; border: 1px solid rgba(212,175,55,0.18) !important; } /* Tile text */ .multicolumn-card__info, .card__content, .card__information { color: #F3E7B3 !important; } /* Tile headings */ .multicolumn-card__info h3, .card__heading { color: #D4AF37 !important; font-weight: 500 !important; } /* Tile paragraphs */ .multicolumn-card__info p, .card__information p { color: #E8DFAE !important; font-size: 15px !important; } /* ===== CES FAQ SOFTEN LINES ===== */ .accordion, details.accordion { border-color: rgba(212,175,55,0.15) !important; } .accordion summary { padding: 14px 0 !important; } /* Remove double line effect */ .accordion + .accordion { border-top: none !important; } /* ===== CES LUXURY TYPE SETTINGS ===== */ h1, h2, h3 { letter-spacing: 0.04em; } p { line-height: 1.6; } /* Improve section titles */ .section-header h2, h2 { color: #D4AF37; } /* ============================== CES — Commission Journey tiles ============================== */ /* Target the “Your Commission Journey” multicolumn cards */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background: rgba(12, 12, 12, 0.92) !important; /* deep charcoal */ color: rgba(245, 235, 195, 0.92) !important; /* warm readable body */ } /* Add a subtle premium border + depth */ .multicolumn .multicolumn-card, .multicolumn .card { border: 1px solid rgba(212, 175, 55, 0.22) !important; box-shadow: 0 10px 24px rgba(0,0,0,0.45) !important; border-radius: 14px !important; } /* Headings inside tiles */ .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading, .multicolumn .card__heading a { color: rgba(212, 175, 55, 0.95) !important; font-weight: 600 !important; letter-spacing: 0.03em !important; } /* Paragraph text inside tiles */ .multicolumn .multicolumn-card__info p, .multicolumn .card__information p { color: rgba(245, 235, 195, 0.90) !important; font-size: 15px !important; line-height: 1.65 !important; } /* If the “step number” circles are too faint, make them readable */ .multicolumn .multicolumn-card__info .caption, .multicolumn .multicolumn-card__info .rte strong { color: rgba(245, 235, 195, 0.92) !important; } /* ===================================================== CES PFMO MASTER STYLE BLOCK v1 Canvas Enchanted Studio — Global Theme Override Paste at VERY BOTTOM of base.css ===================================================== */ /* =========================== GLOBAL BACKGROUND =========================== */ body, .color-background-1, .color-background-2, .page-width, .shopify-section, .gradient, .section, .background, .main-content { background: #000000 !important; } /* =========================== TEXT HIERARCHY =========================== */ /* Primary Headings */ h1,h2,h3,h4 { color: rgba(212,175,55,0.96) !important; letter-spacing: .04em; font-weight: 600; } /* Body Text */ p, li, span, .rte { color: rgba(245,235,195,0.92) !important; line-height: 1.7; } /* Small text */ small, .caption { color: rgba(200,190,150,0.85) !important; } /* Links */ a { color: rgba(212,175,55,0.95) !important; } a:hover { color: rgba(255,215,110,1) !important; } /* =========================== NAVIGATION =========================== */ .header, .header-wrapper, .header__inline-menu { background:#000000 !important; } .header__menu-item { color:rgba(212,175,55,.95) !important; } /* =========================== ICONS =========================== */ svg, .icon { fill:rgba(212,175,55,.95) !important; } /* =========================== BUTTONS =========================== */ button, .button, .shopify-payment-button__button { background:rgba(212,175,55,.15) !important; border:1px solid rgba(212,175,55,.35) !important; color:rgba(212,175,55,.95) !important; border-radius:40px !important; letter-spacing:.05em; } button:hover, .button:hover { background:rgba(212,175,55,.28) !important; border:1px solid rgba(212,175,55,.55) !important; } /* =========================== SEPARATORS =========================== */ hr { border-color:rgba(212,175,55,.15) !important; } /* =========================== TABLES =========================== */ table { border-color:rgba(212,175,55,.18) !important; color:rgba(245,235,195,.9) !important; } td,th { border-color:rgba(212,175,55,.12) !important; } /* =========================== FAQ SECTION Cleaner less busy =========================== */ .accordion, details.accordion { border-color:rgba(212,175,55,.14) !important; background:#000 !important; } .accordion + .accordion { border-top:none !important; } .accordion summary { padding:16px 0 !important; color:rgba(212,175,55,.95) !important; } .accordion__content { padding-top:10px !important; padding-bottom:18px !important; color:rgba(245,235,195,.9) !important; } /* =========================== COMMISSION JOURNEY TILES =========================== */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background:rgba(10,10,10,.92) !important; color:rgba(245,235,195,.92) !important; } .multicolumn .multicolumn-card, .multicolumn .card { border:1px solid rgba(212,175,55,.22) !important; box-shadow:0 10px 24px rgba(0,0,0,.45) !important; border-radius:14px !important; } .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading { color:rgba(212,175,55,.96) !important; letter-spacing:.04em; } .multicolumn .multicolumn-card__info p { color:rgba(245,235,195,.9) !important; font-size:15px; line-height:1.7; } /* =========================== PRODUCT CARDS =========================== */ .card-wrapper, .card { background:#000 !important; border:1px solid rgba(212,175,55,.18) !important; } /* =========================== INPUT FIELDS =========================== */ input, textarea, select { background:#050505 !important; border:1px solid rgba(212,175,55,.25) !important; color:rgba(245,235,195,.95) !important; } /* =========================== FOOTER =========================== */ .footer { background:#000 !important; border-top:1px solid rgba(212,175,55,.18) !important; } /* =========================== REMOVE WHITE FLASHES =========================== */ body { background:#000 !important; } /* =========================== END PFMO BLOCK =========================== */ /* ========================================================= CES PFMO — Global Dark/Gold Override (FINAL STABLE) Paste at VERY BOTTOM of base.css ========================================================= */ /* --------------------------------- 1. CORE COLOR LOCK --------------------------------- */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* --------------------------------- 2. GLOBAL BACKGROUND LOCK --------------------------------- */ html, body, main, #MainContent, .content-for-layout, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .template-index, .template-collection, .template-product, .template-blog, .template-article, .template-search, .template-cart { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 3. COLOR SCHEME WRAPPERS --------------------------------- */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 4. REMOVE WHITE CARDS --------------------------------- */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .product-grid__item, .product-grid__card, .dialog-modal, .drawer { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 5. TEXT COLOR LOCK --------------------------------- */ h1,h2,h3,h4,h5,h6, p, span, div, label, li, a { color: #D4AF37 !important; } /* --------------------------------- 6. INPUT + FORMS --------------------------------- */ input, textarea, select { background-color: #000000 !important; color: #D4AF37 !important; border-color: #D4AF37 !important; } ::placeholder { color: #B8962E !important; } /* --------------------------------- 7. BUTTONS --------------------------------- */ .button, .button-secondary, button { background-color: #000000 !important; color: #D4AF37 !important; border: 1px solid #D4AF37 !important; } .button:hover, button:hover { background-color: #111111 !important; color: #FFD700 !important; } /* --------------------------------- 8. LINKS --------------------------------- */ a { color: #D4AF37 !important; } a:hover { color: #FFD700 !important; } /* --------------------------------- 9. SECTION BACKGROUND FIX --------------------------------- */ .section-background { background-color: #000000 !important; } /* --------------------------------- 10. SCROLLBAR GOLD --------------------------------- */ ::-webkit-scrollbar-thumb { background-color: #D4AF37 !important; } ::-webkit-scrollbar-thumb:hover { background-color: #FFD700 !important; } /* CES Gentle Realms Collection Grid Control */ .collection .grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 40px !important; max-width: 1200px; margin: auto; } /* Tablet */ @media screen and (max-width: 990px) { .collection .grid { grid-template-columns: repeat(2, 1fr) !important; } } /* Mobile */ @media screen and (max-width: 600px) { .collection .grid { grid-template-columns: 1fr !important; } } /* === CES PRODUCT IMAGE FIX === */ .card__media img, .card__inner img, .product-card img, .grid__item img, .media img, .card img { display:block !important; opacity:1 !important; visibility:visible !important; } .card__media { display:block !important; visibility:visible !important; } .card__inner { display:block !important; } .media { display:block !important; } /* LAUNCH MODE FIX: Collection pages showing products too low / invisible */ .template-collection main, .template-collection .main-content, .template-collection #MainContent { min-height: auto !important; } .template-collection .collection, .template-collection .collection__wrapper, .template-collection .collection-main, .template-collection .collection-grid, .template-collection .product-grid, .template-collection .grid.product-grid { margin-top: 0 !important; padding-top: 0 !important; } .template-collection .collection-description, .template-collection .rte, .template-collection .collection__description { margin-bottom: 18px !important; } /* Prevent giant dead space before the grid */ .template-collection .collection .page-width, .template-collection .collection .page-width > * { max-height: none !important; } /* LAUNCH MODE FIX: collection product card appears but image/text not rendering */ .template-collection .card, .template-collection .card__content, .template-collection .card__information, .template-collection .card__heading, .template-collection .price { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media, .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: cover !important; } /* LAUNCH FIX — product images not showing in collection grid */ .card__media { min-height: 280px !important; height: auto !important; } .card__media img { min-height: 280px !important; height: auto !important; width: 100% !important; object-fit: cover !important; } /* Ensure collection product images render */ .template-collection .card__media { min-height: 320px !important; } .template-collection .card__media img { min-height: 320px !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION PRODUCT IMAGES TO SHOW === */ .template-collection .card-wrapper, .template-collection .card, .template-collection .product-card-wrapper { position: relative !important; } .template-collection .card__media, .template-collection .card__media * { display: block !important; opacity: 1 !important; visibility: visible !important; max-height: none !important; } .template-collection .card__media { height: auto !important; min-height: 220px !important; overflow: visible !important; } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { width: 100% !important; height: auto !important; object-fit: cover !important; } /* If an overlay is covering the card, keep media clickable/visible */ .template-collection .card__inner, .template-collection .collection-card__inner, .template-collection .card__content { pointer-events: auto !important; position: relative !important; z-index: 2 !important; } .template-collection .card__link, .template-collection .full-unstyled-link { z-index: 5 !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION GRID IMAGES V1 === */ /* Paste at VERY BOTTOM of base.css */ .template-collection .card__media, .template-collection .card__inner, .template-collection .media { display: block !important; position: relative !important; overflow: hidden !important; min-height: 280px !important; /* gives the image area a body */ } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg, .template-collection .media img, .template-collection .media picture { display: block !important; opacity: 1 !important; visibility: visible !important; transform: none !important; filter: none !important; mix-blend-mode: normal !important; } .template-collection .card__media img, .template-collection .media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } /* PRODUCT IMAGE VISIBILITY FIX */ .card-gallery { overflow: visible !important; min-height: 400px !important; } .card-gallery img { display: block !important; width: 100% !important; height: auto !important; } .product-card, .card-wrapper, .card { min-height: 400px !important; } /* HOTFIX: force product deferred media posters / preview images to show */ .product-media__image, .deferred-media__poster, .deferred-media__poster-image, .deferred-media__poster img, .product__media img { opacity: 1 !important; visibility: visible !important; display: block !important; } /* If the poster/preview is absolutely positioned, ensure it has a box */ .deferred-media, .product-media, .product__media, .product__media-item, .media { position: relative !important; min-height: 1px !important; } /* Make sure the poster fills the media area */ .deferred-media__poster, .deferred-media__poster-image { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; } /* Make sure the image covers nicely */ .deferred-media__poster img, .deferred-media__poster-image img, .product-media__image img, .product__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } .template-collection .media::before, .template-collection .card__media::before, .template-collection .media::after, .template-collection .card__media::after { display: none !important; content: none !important; } /* === CES PATCH: remove collection tile overlay that hides images === */ .template-collection .card::before, .template-collection .card::after, .template-collection .card__inner::before, .template-collection .card__inner::after, .template-collection .card__media::before, .template-collection .card__media::after, .template-collection .media::before, .template-collection .media::after { content: none !important; display: none !important; } /* ensure media/image layer is on top */ .template-collection .card__media, .template-collection .media, .template-collection .card__media img, .template-collection .media img { position: relative !important; z-index: 2 !important; } /* FIX: quick-add overlay background covering product card media */ .template-collection quick-add-component.quick-add, .template-collection quick-add-component.quick-add::before, .template-collection quick-add-component.quick-add::after { background: transparent !important; background-color: transparent !important; } /* just in case the theme uses the class instead of the custom element */ .template-collection .quick-add { background: transparent !important; background-color: transparent !important; } /* CES DIAGNOSTIC: stop hover surfaces from painting over empty media on collection cards */ .template-collection .card, .template-collection .card__inner, .template-collection .product-card, .template-collection .product-card__inner, .template-collection .card-gallery { background: transparent !important; background-color: transparent !important; } /* If the theme uses a hover background variable, neutralize it on collection pages */ .template-collection { --card-bg-hover: transparent !important; } /* CES DIAGNOSTIC: force card media to render so we can see if it's being hidden/collapsed */ .template-collection .media, .template-collection .card__media, .template-collection .product-card__media, .template-collection .media img, .template-collection img { opacity: 1 !important; visibility: visible !important; display: block !important; height: auto !important; } /* CES HOTFIX: ensure resource cards are visible even if fadeIn keyframes/vars are missing */ .resource-card { opacity: 1 !important; animation: none !important; } /* CES FIX: ensure fadeIn exists + animation vars have safe defaults */ :root { --animation-speed-medium: 0.25s; --animation-timing-fade-in: ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
    • .video-placeholder-wrapper__poster-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 50%; display: flex; align-items: center; justify-content: center; } .deferred-media__poster-icon svg, .video-placeholder-wrapper__poster-icon svg { width: var(--button-size); height: var(--button-size); color: var(--color-white); filter: drop-shadow(var(--shadow-button)); &:hover { color: rgb(var(--color-white-rgb) / var(--opacity-80)); } @media screen and (min-width: 750px) { width: 4rem; height: 4rem; } } deferred-media[class] :is(.deferred-media__poster-button img, .deferred-media__poster-button ~ video) { /* only apply this on the video block not product media */ object-fit: cover; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } .button-shopify-xr { width: 100%; display: flex; justify-content: center; align-items: center; padding: var(--padding-md); } .button-shopify-xr > svg { width: var(--icon-size-sm); height: var(--icon-size-sm); margin-inline-end: var(--margin-md); } .button-shopify-xr[data-shopify-xr-hidden] { display: none; } /* Swatches */ .swatch { --color-border: rgb(var(--color-foreground-rgb) / var(--style-border-swatch-opacity)); --min-width-unitless: 15.9999; /* want to avoid division by 0 */ --min-height-unitless: 15.9999; /* want to avoid division by 0 */ --min-height: 16px; --min-width: 16px; /* mobile values */ --scaling-factor: 0.5; --max-swatch-size: 28px; --max-pill-size: 20px; --max-filter-size: 32px; /* From the settings */ --offset-swatch-width: calc(var(--variant-picker-swatch-width-unitless) - var(--min-width-unitless)); --offset-swatch-height: calc(var(--variant-picker-swatch-height-unitless) - var(--min-height-unitless)); /** Offset values are obtained from the following formulas: offset-width = width - min-width offset-height = height - min-height The offset-scaled-width and heigth are obtained by extending the line from [min,min] to [W,H] and taking the intersection with a square that starts at [min,min] and ends at [max,max]. The extending line forms right angle triangles with the [min,min]->[max,max] box that enable us to derive the following formulas We also want the result to always be smaller than the input (pdp > everywhere else) by some scaling factor. */ --offset-scaled-width: calc( var(--scaling-factor) * var(--offset-swatch-width) / var(--offset-swatch-height) * var(--offset-max-swatch-size) ); --offset-scaled-height: calc( var(--scaling-factor) * var(--offset-swatch-height) / var(--offset-swatch-width) * var(--offset-max-swatch-size) ); --offset-max-swatch-size: calc(var(--max-swatch-size) - var(--min-width)); /* width = min(m + sU, (m + s * W'/H' * M'), M) */ --swatch-width: min( calc(var(--min-width) + var(--scaling-factor) * var(--offset-swatch-width) * 1px), calc(var(--min-width) + var(--offset-scaled-width)), var(--max-swatch-size) ); /* height = min(m + sV, (m + s * H'/W' * M'), M) */ --swatch-height: min( calc(var(--min-height) + var(--scaling-factor) * var(--offset-swatch-height) * 1px), calc(var(--min-height) + var(--offset-scaled-height)), var(--max-swatch-size) ); display: block; background: var(--swatch-background); background-position: var(--swatch-focal-point, center); border-radius: var(--variant-picker-swatch-radius); border: var(--style-border-swatch-width) var(--style-border-swatch-style) var(--color-border); width: var(--swatch-width); height: var(--swatch-height); /* This is different than `background-size: cover` because we use `box-sizing: border-box`, * doing it like makes the background clip under the border without repeating. */ background-size: var(--swatch-width) var(--swatch-height); &.swatch--unavailable { border-style: dashed; } &.swatch--unscaled { /* for when you want fixed sizing (e.g. pdp) */ --swatch-width: var(--variant-picker-swatch-width); --swatch-height: var(--variant-picker-swatch-height); } &.swatch--filter { --swatch-width: var(--max-filter-size); --swatch-height: var(--max-filter-size); border-radius: var(--variant-picker-swatch-radius); } &.swatch--pill { --swatch-width: var(--max-pill-size); --swatch-height: var(--max-pill-size); border-radius: var(--variant-picker-swatch-radius); } /* swatches in filters and pills always have a border */ &.swatch--filter, &.swatch--pill { --style-border-swatch-width: var(--variant-picker-border-width); --style-border-swatch-style: var(--variant-picker-border-style); --color-border: rgb(var(--color-foreground-rgb) / var(--variant-picker-border-opacity)); } &.swatch--variant-image { background-size: cover; } @media screen and (min-width: 750px) { /* desktop values */ --max-swatch-size: 32px; --max-pill-size: 16px; --max-filter-size: 28px; --scaling-factor: 0.65; } } .variant-picker .variant-option--buttons label:has(.swatch) { border-radius: var(--variant-picker-swatch-radius); } .sticky-content { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } @media screen and (min-width: 750px) { .sticky-content--desktop, .sticky-content--desktop.full-height--desktop > .group-block { position: sticky; top: var(--sticky-header-offset, 0); z-index: var(--layer-flat); } } .price, .compare-at-price, .unit-price { white-space: nowrap; } .unit-price { display: block; font-size: min(0.85em, var(--font-paragraph--size)); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } .tax-note.tax-note.tax-note { font-size: min(0.85em, var(--font-paragraph--size)); font-weight: var(--font-paragraph--weight); color: rgb(var(--color-foreground-rgb) / var(--opacity-subdued-text)); } product-price.text-block:is(.h1, .h2, .h3, .h4, .h5, .h6) > *:not(.tax-note) { margin-block: 0; } .compare-at-price { opacity: 0.4; text-decoration-line: line-through; text-decoration-thickness: 1.5px; } .card-gallery { position: relative; } @container (max-width: 70px) { .card-gallery:hover .quick-add__button { display: none; } } /* Drawer */ .drawer { background-color: var(--color-background); position: fixed; top: 0; left: 0; bottom: 0; width: var(--sidebar-width); z-index: var(--layer-raised); transform: translateX(-120%); transition: transform var(--animation-speed) var(--animation-easing); } .drawer[data-open='true'] { transform: translateX(0); } .drawer-toggle { display: flex; align-items: center; gap: 10px; cursor: pointer; } .drawer__header { display: flex; justify-content: space-between; align-items: center; padding: var(--drawer-header-block-padding) var(--drawer-inline-padding); } .drawer__title { font-size: var(--font-h2--size); margin: 0; } .drawer__close { width: var(--minimum-touch-target); height: var(--minimum-touch-target); } .drawer__content { display: block; padding: var(--drawer-content-block-padding) var(--drawer-inline-padding); width: 100%; } /* Background overlay */ .background-overlay { position: relative; &::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--background-overlay-color, rgb(0 0 0 / 15%)); } } /* Spacing style */ .spacing-style { --spacing-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --spacing-scale: var(--spacing-scale-default); } /* Must disable this, when you use these with calc and another unit type, things break — see logo.liquid */ /* stylelint-disable length-zero-no-unit */ --padding-block: 0px; --padding-block-start: var(--padding-block, 0px); --padding-block-end: var(--padding-block, 0px); --padding-inline: 0px; --padding-inline-start: var(--padding-inline, 0px); --padding-inline-end: var(--padding-inline, 0px); --margin-block: 0px; --margin-block-start: var(--margin-block, 0px); --margin-block-end: var(--margin-block, 0px); --margin-inline: 0px; --margin-inline-start: var(--margin-inline, 0px); --margin-inline-end: var(--margin-inline, 0px); } .spacing-style, .inherit-spacing { padding-block: calc(var(--padding-block-start) + var(--section-top-offset, 0px)) var(--padding-block-end); padding-inline: var(--padding-inline-start) var(--padding-inline-end); margin-block: var(--margin-block-start) var(--margin-block-end); margin-inline: var(--margin-inline-start) var(--margin-inline-end); } /* Size style */ .size-style { width: var(--size-style-width-mobile, var(--size-style-width)); height: var(--size-style-height-mobile, var(--size-style-height)); @media screen and (min-width: 750px) { width: var(--size-style-width); height: var(--size-style-height); } } /* Custom Typography style */ .custom-typography, .custom-typography > * { font-family: var(--font-family); font-weight: var(--font-weight); text-transform: var(--text-transform); text-wrap: var(--text-wrap); line-height: var(--line-height); letter-spacing: var(--letter-spacing); } .custom-typography { h1 { line-height: var(--line-height--display, var(--line-height)); } h2, h3, h4 { line-height: var(--line-height--heading, var(--line-height)); } p { line-height: var(--line-height--body, var(--line-height)); } } .custom-font-size, .custom-font-size > * { font-size: var(--font-size); } .custom-font-weight, .custom-font-weight > * { font-weight: var(--weight); } /* Border override style */ .border-style { border-width: var(--border-width); border-style: var(--border-style); border-color: var(--border-color); border-radius: var(--border-radius); } /* Gap scaling style */ .gap-style, .layout-panel-flex { --gap-scale: var(--spacing-scale-md); @media screen and (min-width: 990px) { --gap-scale: var(--spacing-scale-default); } } .layout-panel-flex { display: flex; gap: var(--gap); height: 100%; } .layout-panel-flex--row { flex-flow: row var(--flex-wrap); justify-content: var(--horizontal-alignment); align-items: var(--vertical-alignment); } .layout-panel-flex--column { flex-flow: column var(--flex-wrap); align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment); } @media screen and (max-width: 749px) { .mobile-column { flex-flow: column nowrap; align-items: var(--horizontal-alignment); justify-content: var(--vertical-alignment-mobile); } .layout-panel-flex--row:not(.mobile-column) { flex-wrap: var(--flex-wrap-mobile); > .menu { flex: 1 1 min-content; } > .text-block { flex: 1 1 var(--max-width--display-tight); } > .image-block { flex: 1 1 var(--size-style-width-mobile-min); } > .button { flex: 0 0 fit-content; } } } @media (min-width: 750px) { .layout-panel-flex { flex-direction: var(--flex-direction); } } /* Form fields */ .field { position: relative; width: 100%; display: flex; transition: box-shadow var(--animation-speed) ease; } .field__input { flex-grow: 1; text-align: left; border-radius: var(--style-border-radius-inputs); transition: box-shadow var(--animation-speed) ease, background-color var(--animation-speed) ease; padding: var(--input-padding); box-shadow: var(--input-box-shadow); background-color: var(--color-input-background); color: var(--color-input-text); border: none; outline: none; font-size: var(--font-paragraph--size); &:autofill { background-color: var(--color-input-background); color: var(--color-input-text); } } .field__input:is(:focus, :hover) { box-shadow: var(--input-box-shadow-focus); background-color: var(--color-input-hover-background); } .field__input--button-radius { border-radius: var(--style-border-radius-buttons-primary); } .field__input--button-padding { padding-inline: var(--padding-3xl); } .field__label { color: rgb(var(--color-input-text-rgb) / var(--opacity-80)); font-size: var(--font-paragraph--size); left: var(--input-padding-x); top: 50%; transform: translateY(-50%); margin-bottom: 0; pointer-events: auto; position: absolute; transition: top var(--animation-speed) ease, font-size var(--animation-speed) ease; } /* RTE styles */ .rte, .shopify-policy__title { :is(h1, h2, h3, h4, h5, h6) { margin-block: clamp(1.5rem, 1em * 3.3, 2.5rem) clamp(1rem, 1em * 0.25, 2rem); } :first-child:is(p, h1, h2, h3, h4, h5, h6), :first-child:empty + :is(p, h1, h2, h3, h4, h5, h6) { margin-block-start: 0; } ul, ol { margin-block-start: 0; padding-inline-start: 1.5em; } /* Only apply margin-block-end to the higher level list, not nested lists */ :is(ul, ol):not(:is(ul, ol) :is(ul, ol)) { margin-block-end: 1em; } blockquote { margin-inline: 1.5em 2.3em; margin-block: 3.8em; padding-inline-start: 0.8em; border-inline-start: 1.5px solid rgb(var(--color-foreground-rgb) / var(--opacity-25)); font-style: italic; font-weight: 500; } .rte-table-wrapper { overflow-x: auto; } table { /* stylelint-disable-next-line declaration-no-important */ width: 100% !important; border-collapse: collapse; } tr:not(:has(td)), thead { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5)); font-weight: bold; text-transform: uppercase; } tr:has(td) { border-bottom: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-10)); } th, td { text-align: start; padding-inline: var(--padding-md); padding-block: var(--padding-sm); } } .shopify-policy__container { padding-block: var(--padding-xl); } .checkbox { --checkbox-size: 22px; --checkbox-top: 50%; --checkbox-left: 1.5px; --checkbox-offset: 3px; --checkbox-border-radius: 7px; --checkbox-label-padding: 8px; --checkbox-path-opacity: 0; --checkbox-cursor: pointer; --checkbox-border: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55)); position: relative; display: flex; align-items: center; @media screen and (min-width: 750px) { --checkbox-size: 16px; --checkbox-border-radius: 5px; --checkbox-label-padding: 6px; } &:has(.checkbox__input:checked) { --checkbox-path-opacity: 1; } &.checkbox--disabled { --checkbox-cursor: not-allowed; } } .checkbox__input { position: absolute; opacity: 0; margin: 0; width: var(--checkbox-size); height: var(--checkbox-size); /* Outline is on the SVG instead, to allow it to have border-radius */ &:focus-visible { outline: none; } &:focus-visible + .checkbox__label .icon-checkmark { outline: var(--focus-outline-width) solid currentcolor; outline-offset: var(--focus-outline-offset); } &:checked + .checkbox__label .icon-checkmark { background-color: var(--color-foreground); border-color: var(--color-foreground); } &:disabled + .checkbox__label .icon-checkmark { background-color: var(--input-disabled-background-color); border-color: var(--input-disabled-border-color); } } .checkbox__label { position: relative; display: inline-flex; cursor: var(--checkbox-cursor); line-height: var(--checkbox-size); min-width: var(--minimum-touch-target); } .checkbox .icon-checkmark { height: var(--checkbox-size); width: var(--checkbox-size); flex-shrink: 0; border: var(--checkbox-border); border-radius: var(--checkbox-border-radius); background-color: var(--color-background); } .checkbox__label-text { padding-inline-start: var(--checkbox-label-padding); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .checkbox .icon-checkmark path { stroke: var(--color-background); opacity: var(--checkbox-path-opacity); transition: opacity var(--animation-speed) var(--animation-easing); } .checkbox__input:disabled + .checkbox__label { color: var(--input-disabled-text-color); } /* Add to cart button */ .button[id^='BuyButtons-ProductSubmitButton-'] { position: relative; overflow: hidden; } /* Cart bubble */ .cart-bubble { --cart-padding: 0.2em; position: relative; width: 20px; aspect-ratio: 1; border-radius: 50%; border-width: 0; display: flex; line-height: normal; align-items: center; justify-content: center; color: var(--color-primary-button-text); padding-inline: var(--cart-padding); } .cart-bubble__background { position: absolute; inset: 0; background-color: var(--color-primary-button-background); border-radius: var(--style-border-radius-lg); } .cart-bubble__text { font-size: var(--font-size--3xs); z-index: var(--layer-flat); line-height: 1; display: flex; align-items: center; justify-content: center; } /* Quantity selector */ .quantity-selector { --quantity-selector-width: 124px; display: flex; justify-content: space-between; align-items: center; color: var(--color-input-text); background-color: var(--color-input-background); border: var(--style-border-width-inputs) solid var(--color-input-border); border-radius: var(--style-border-radius-inputs); flex: 1 1 var(--quantity-selector-width); align-self: stretch; transition: background-color var(--animation-speed) var(--animation-easing); &:hover { background-color: var(--color-input-hover-background); } } .product-form-buttons:has(.add-to-cart-button.button-secondary) .quantity-selector { border-radius: var(--style-border-radius-buttons-secondary); } .quantity-selector :is(.quantity-minus, .quantity-plus) { /* Unset button styles */ padding: 0; background: transparent; box-shadow: none; display: flex; justify-content: center; align-items: center; cursor: pointer; width: var(--minimum-touch-target); height: var(--minimum-touch-target); flex-shrink: 0; color: var(--color-input-text); } .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-inputs); border-end-start-radius: var(--style-border-radius-inputs); } .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-inputs); border-end-end-radius: var(--style-border-radius-inputs); } .product-details .quantity-selector { border-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-minus { border-start-start-radius: var(--style-border-radius-buttons-primary); border-end-start-radius: var(--style-border-radius-buttons-primary); } .product-details .quantity-selector .quantity-plus { border-start-end-radius: var(--style-border-radius-buttons-primary); border-end-end-radius: var(--style-border-radius-buttons-primary); } .quantity-selector .svg-wrapper { transition: transform var(--animation-speed) var(--animation-easing); } .quantity-selector svg { width: var(--icon-size-xs); height: var(--icon-size-xs); } :is(.quantity-minus, .quantity-plus):active .svg-wrapper { transform: scale(0.9); } .quantity-selector input[type='number'] { margin: 0; text-align: center; border: none; appearance: none; max-width: calc(var(--quantity-selector-width) - var(--minimum-touch-target) * 2); border-radius: var(--style-border-radius-buttons); color: var(--color-input-text); background-color: transparent; } /* Chrome, Safari, Edge, Opera */ .quantity-selector input[type='number']::-webkit-inner-spin-button, .quantity-selector input[type='number']::-webkit-outer-spin-button { appearance: none; } /* Firefox */ .quantity-selector input[type='number'] { appearance: textfield; } /* Pills (used in facets and predictive search) */ .pills__pill { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15)); color: var(--color-foreground); display: flex; justify-content: space-between; align-items: center; gap: var(--gap-sm); min-width: 48px; padding: 6px 12px; border-radius: var(--style-border-radius-pills); cursor: pointer; background-color: var(--pills-pill-background-color); transition: background-color var(--animation-speed) var(--animation-easing); &:hover { --pills-pill-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); } @media screen and (max-width: 749px) { padding: var(--padding-xs) var(--padding-md); } } .pills__pill > .svg-wrapper { --close-icon-opacity: 0.4; --icon-stroke-width: 1px; color: var(--color-foreground); } .pills__pill--swatch { @media screen and (max-width: 749px) { padding-inline-start: var(--padding-sm); } } .pills__pill--swatch .swatch { margin-right: -4px; } .pills__pill--desktop-small { @media screen and (min-width: 750px) { font-size: var(--font-size--xs); } } /* Fly to cart animation */ fly-to-cart { --offset-y: 10px; position: fixed; width: var(--width, 40px); height: var(--height, 40px); left: 0; top: 0; z-index: calc(infinity); pointer-events: auto; border-radius: var(--style-border-radius-buttons-primary); overflow: hidden; object-fit: cover; background-size: cover; background-position: center; opacity: 0; background-color: var(--color-foreground); translate: var(--start-x, 0) var(--start-y, 0); transform: translate(-50%, -50%); animation-name: travel-x, travel-y, travel-scale; animation-timing-function: var(--x-timing), var(--y-timing), var(--scale-timing); animation-duration: 0.6s; animation-composition: accumulate; animation-fill-mode: both; } fly-to-cart.fly-to-cart--main { --x-timing: cubic-bezier(0.7, -5, 0.98, 0.5); --y-timing: cubic-bezier(0.15, 0.57, 0.9, 1.05); --scale-timing: cubic-bezier(0.85, 0.05, 0.96, 1); } fly-to-cart.fly-to-cart--quick { --x-timing: cubic-bezier(0, -0.1, 1, 0.32); --y-timing: cubic-bezier(0, 0.92, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); animation-duration: 0.6s; } fly-to-cart.fly-to-cart--sticky { --x-timing: cubic-bezier(0.98, -0.8, 0.92, 0.5); --y-timing: cubic-bezier(0.14, 0.56, 0.92, 1.04); --scale-timing: cubic-bezier(0.86, 0.08, 0.98, 0.98); --radius: var(--style-border-radius-buttons-primary); @media (max-width: 749px) { --x-timing: cubic-bezier(0.98, -0.1, 0.92, 0.5); } animation-duration: 0.8s; } @keyframes travel-scale { 0% { opacity: var(--start-opacity, 1); } 5% { opacity: 1; } 100% { border-radius: 50%; opacity: 1; transform: translate(-50%, calc(-50% + var(--offset-y))) scale(0.25); } } @keyframes travel-x { to { translate: var(--travel-x, 0) 0; } } @keyframes travel-y { to { translate: 0 var(--travel-y, 0); } } /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------------ */ /* Animation declarations - to be kept at the bottom of the file for ease of find */ @keyframes grow { 0% { transform: scale(1); } 50% { transform: scale(1.2); } 100% { transform: scale(1); } } @keyframes move-and-fade { from { transform: translate(var(--start-x, 0), var(--start-y, 0)); opacity: var(--start-opacity, 0); } to { transform: translate(var(--end-x, 0), var(--end-y, 0)); opacity: var(--end-opacity, 1); } } @keyframes slideInTopViewTransition { from { transform: translateY(100px); } } @keyframes elementSlideInTop { from { margin-top: var(--padding-sm); opacity: 0; } to { margin-top: 0; opacity: 1; } } @keyframes elementSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } @keyframes elementSlideInBottom { from { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes elementSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(calc(-1 * var(--padding-sm))); opacity: 0; } } @keyframes thumbnailsSlideInTop { from { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } to { transform: translateY(-50%); opacity: 1; } } @keyframes thumbnailsSlideOutTop { from { transform: translateY(-50%); opacity: 1; } to { transform: translateY(calc(-50% + var(--margin-lg))); opacity: 0; } } @keyframes thumbnailsSlideInBottom { from { transform: translateY(100%); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes thumbnailsSlideOutBottom { from { transform: translateY(0); opacity: 1; } to { transform: translateY(100%); opacity: 0; } } @keyframes search-element-slide-in-bottom { 0% { transform: translateY(20px); opacity: 0; } 100% { transform: translateY(0); opacity: 1; } } @keyframes search-element-slide-out-bottom { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(20px); opacity: 0; } } @keyframes dialogZoom { from { opacity: 1; transform: scale(1) translateY(0); } to { opacity: 0; transform: scale(0.95) translateY(1em); } } @keyframes thumbnail-selected { 0%, 100% { box-shadow: 0 0 0 2px transparent; scale: 0.9; } 50% { box-shadow: 0 0 0 2px #000; scale: 1; } } @keyframes backdropFilter { from { backdrop-filter: brightness(1); } to { backdrop-filter: brightness(0.75); } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes modalSlideInTop { from { transform: translateY(var(--padding-sm)); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes modalSlideOutTop { from { transform: translateY(0); opacity: 1; } to { transform: translateY(var(--padding-sm)); opacity: 0; } } .bubble { display: inline-flex; height: calc(var(--variant-picker-swatch-height) / 1.5); font-size: var(--font-size--xs); border-radius: 20px; min-width: 20px; padding: 0 6px; background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10-25)); color: var(--color-foreground); align-items: center; justify-content: center; } .bubble svg { width: 12px; height: 12px; } .top-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(-50px 0 0 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .top-shadow--mobile::before { display: none; } } .bottom-shadow::before { content: ''; box-shadow: 0 0 10px var(--color-shadow); position: absolute; z-index: var(--layer-lowest); inset: 0; clip-path: inset(0 0 -50px 0); /* stylelint-disable-line */ } @media (min-width: 750px) { .bottom-shadow--mobile::before { display: none; } } .video-placeholder-wrapper { position: relative; width: 100%; height: 100%; aspect-ratio: var(--size-style-aspect-ratio, auto); } :not(deferred-media) > .video-placeholder-wrapper { width: var(--video-placeholder-width); } .video-placeholder-wrapper > * { width: 100%; height: 100%; object-fit: cover; object-position: center; } /* * Slideshow Component */ slideshow-component { --cursor: grab; --slide-offset: 6px; position: relative; display: flex; flex-direction: column; timeline-scope: var(--slideshow-timeline); } slideshow-component.slideshow--content-below-media slideshow-slide { display: grid; } .slideshow--content-below-media slideshow-slide :is(.slide__image-container, .slide__content) { position: static; } .slideshow--content-below-media slideshow-slide { grid-template-rows: var(--grid-template-rows); @media screen and (min-width: 750px) { grid-template-rows: var(--grid-template-rows-desktop); } } .slide__content { opacity: 0; animation: slide-reveal both linear; animation-timeline: var(--slideshow-timeline); @media (prefers-reduced-motion) { opacity: 1; animation: none; } } .slideshow--single-media { --cursor: default; } a slideshow-component { --cursor: pointer; } /* * Slideshow Slides */ slideshow-slides { width: 100%; position: relative; display: flex; overflow-x: scroll; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-color: transparent transparent; scrollbar-width: none; gap: var(--slideshow-gap, 0); cursor: var(--cursor); min-height: var(--slide-min-height); @media (prefers-reduced-motion) { scroll-behavior: auto; } &::-webkit-scrollbar { width: 0; } &::-webkit-scrollbar-track { background: transparent; } &::-webkit-scrollbar-thumb { background: transparent; border: none; } @media screen and (min-width: 750px) { min-height: var(--slide-min-height-desktop); } } slideshow-component[disabled='true'] slideshow-slides { overflow: hidden; } slideshow-component[mobile-disabled] slideshow-slides { @media screen and (max-width: 749px) { overflow: hidden; } } slideshow-slide { position: relative; scroll-snap-align: center; width: var(--slide-width, 100%); max-height: 100%; flex-shrink: 0; view-timeline-name: var(--slideshow-timeline); view-timeline-axis: inline; content-visibility: auto; contain-intrinsic-size: auto none; border-radius: var(--corner-radius, 0); overflow: hidden; slideshow-component[actioned] &, &[aria-hidden='false'] { content-visibility: visible; } slideshow-component slideshow-slide:not([aria-hidden='false']) { content-visibility: hidden; } &[hidden]:not([reveal]) { display: none; } /* Make inactive slides appear clickable */ &[aria-hidden='true'] { cursor: pointer; } } slideshow-slide .slide__image-container--rounded { border-radius: var(--corner-radius, 0); } slideshow-slide.product-media-container--tallest { content-visibility: visible; } @media screen and (max-width: 749px) { /* Media gallery has a peeking slide on the right side always, and on the left side when the current slide is the last one */ .media-gallery--hint :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']:last-of-type), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } } /* * Collection and Resource list carousels have peeking slides on both sides. * Card galleries preview the next or previous images on 'pointerenter', so we * try to kick load them beforehand (they are lazy loaded otherwise). */ :is(.resource-list__carousel, .card-gallery) :is( slideshow-slide:has(+ slideshow-slide[aria-hidden='false']), slideshow-slide[aria-hidden='false'] + slideshow-slide ) { content-visibility: auto; slideshow-component[actioned] & { content-visibility: visible; } } /* * Be specific about HTML children structure to avoid targeting nested slideshows. * Ensure that the content is 'visible' while scrolling instead of 'auto' to avoid issues in Safari. */ slideshow-component:is([dragging], [transitioning], :hover) > slideshow-container > slideshow-slides > slideshow-slide { content-visibility: visible; } slideshow-slides[gutters*='start'] { padding-inline-start: var(--gutter-slide-width, 0); scroll-padding-inline-start: var(--gutter-slide-width, 0); } slideshow-slides[gutters*='end'] { padding-inline-end: var(--gutter-slide-width, 0); } slideshow-component[dragging] { --cursor: grabbing; * { pointer-events: auto; } } slideshow-component[dragging] slideshow-arrows { display: none; } slideshow-container { width: 100%; display: block; position: relative; grid-area: container; container-type: inline-size; } @media screen and (min-width: 750px) { .media-gallery--carousel slideshow-component:has(slideshow-controls[thumbnails]) { &:has(slideshow-controls[pagination-position='right']) { display: grid; grid-template: 'container controls' auto 'arrows controls' min-content / 1fr auto; } &:has(slideshow-controls[pagination-position='left']) { display: grid; grid-template: 'controls container' auto 'controls arrows' min-content / auto 1fr; } slideshow-controls[pagination-position='left'] { order: -1; } } } /* Slideshow Play/Pause */ .slideshow-control:is(.icon-pause, .icon-play) { color: var(--color-active); &:hover { color: var(--color-hover); } svg { display: none; } } slideshow-component:is([autoplay]) { &:is([paused]) { .icon-play > svg { display: block; } } &:not([paused]) { .icon-pause > svg { display: block; } } } /* Slideshow Arrows */ slideshow-arrows { --cursor-previous: w-resize; --cursor-next: e-resize; position: absolute; inset: 0; display: flex; z-index: var(--layer-heightened); pointer-events: auto; mix-blend-mode: difference; align-items: flex-end; &[position='left'] { justify-content: flex-start; padding-inline: var(--padding-xs); } &[position='right'] { justify-content: flex-end; padding-inline: var(--padding-xs); } &[position='center'] { justify-content: space-between; align-items: center; } } slideshow-arrows:has(.slideshow-control--shape-square), slideshow-arrows:has(.slideshow-control--shape-circle) { mix-blend-mode: normal; } slideshow-component[disabled='true'] slideshow-arrows { display: none; } slideshow-arrows .slideshow-control { pointer-events: auto; opacity: 0; min-height: var(--minimum-touch-target); min-width: var(--minimum-touch-target); padding: 0 var(--padding-xs); color: var(--color-white); } slideshow-arrows .slideshow-control.slideshow-control--style-none { display: none; } .media-gallery--carousel slideshow-arrows .slideshow-control { padding-inline: 0 var(--padding-md); opacity: 1; } .card-gallery slideshow-arrows .slideshow-control { /* Align icons with quick-add button */ padding-inline: var(--padding-xl); @container (max-width: 249px) { padding-inline: 0 var(--padding-sm); } } :not(.media-gallery--carousel) > :is(slideshow-component:hover, slideshow-component:focus-within):not(:has(slideshow-controls:hover)) > slideshow-container > slideshow-arrows .slideshow-control { animation: arrowsSlideIn var(--animation-speed) var(--animation-easing) forwards; } @keyframes arrowsSlideIn { from { transform: translate(var(--padding-sm), 0); opacity: 0; } to { opacity: 1; } } @keyframes slide-reveal { 0% { translate: calc(var(--slideshow-slide-offset, 6) * 1rem) 0; opacity: 0; } 50% { opacity: 1; } 100% { translate: calc(var(--slideshow-slide-offset, 6) * -1rem) 0; opacity: 0; } } .block-resource-list { display: flex; flex-direction: column; row-gap: var(--gap); min-width: 0; min-height: 0; container-type: inline-size; container-name: resource-list; } .section-resource-list, .section-carousel { row-gap: var(--gap); } .section-resource-list__content { display: flex; flex-direction: column; align-items: var(--horizontal-alignment); gap: var(--gap); width: 100%; } .section-resource-list__content:empty { display: none; } .section-resource-list__header:is(:empty, :has(.group-block-content:empty)), .section-resource-list__content:empty { display: none; } .section-resource-list.section--full-width product-card-link > .group-block, .section-carousel.section--full-width product-card-link > .group-block { @media screen and (max-width: 749px) { padding-inline: max(var(--padding-xs), var(--padding-inline-start)) max(var(--padding-xs), var(--padding-inline-end)); } } .resource-list--carousel-mobile { display: block; @media screen and (min-width: 750px) { display: none; } } .resource-list { --resource-list-mobile-gap-max: 9999px; --resource-list-column-gap: min(var(--resource-list-column-gap-desktop), var(--resource-list-mobile-gap-max)); --resource-list-row-gap: min(var(--resource-list-row-gap-desktop), var(--resource-list-mobile-gap-max)); width: 100%; @media screen and (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } @container resource-list (max-width: 749px) { --resource-list-mobile-gap-max: 12px; } } .resource-list--grid { display: grid; gap: var(--resource-list-row-gap) var(--resource-list-column-gap); grid-template-columns: var(--resource-list-columns-mobile); @media screen and (min-width: 750px) { grid-template-columns: var(--resource-list-columns); } @container resource-list (max-width: 449px) { grid-template-columns: var(--resource-list-columns-mobile); } @container resource-list(min-width: 450px) and (max-width: 749px) { --resource-list-columns-per-row: 3; grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); /* Avoid orphan in last row when there are 4, 7, or 10 items */ &:has(.resource-list__item:first-child:nth-last-child(3n + 1)), /* Clean two full rows when there are 8 items */ &:has(.resource-list__item:first-child:nth-last-child(8n)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 750px) { grid-template-columns: repeat(var(--resource-list-columns-per-row), 1fr); &:has(.resource-list__item:first-child:nth-last-child(n + 9)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(n + 7):nth-last-child(-n + 8)) { --resource-list-columns-per-row: 4; } &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 3; } &:has(.resource-list__item:first-child:nth-last-child(5)) { --resource-list-columns-per-row: 5; } &:has(.resource-list__item:first-child:nth-last-child(-n + 4)) { --resource-list-columns-per-row: 4; } } @container resource-list (min-width: 1200px) { &:has(.resource-list__item:first-child:nth-last-child(6)) { --resource-list-columns-per-row: 6; } } } .resource-list__item { height: 100%; color: var(--color-foreground); text-decoration: none; } .resource-list__carousel { --slide-width: 60vw; width: 100%; position: relative; container-type: inline-size; container-name: resource-list-carousel; .slideshow-control[disabled] { display: none; } .slideshow-control--next { margin-inline-start: auto; } } @container resource-list-carousel (max-width: 749px) { .resource-list__carousel .resource-list__slide { --slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); } } @container resource-list-carousel (min-width: 750px) { .resource-list__carousel .resource-list__slide { --section-slide-width: calc( (100% - (var(--resource-list-column-gap) * (var(--column-count) - 1)) - var(--peek-next-slide-size)) / var(--column-count) ); --fallback-slide-width: clamp(150px, var(--mobile-card-size, 60cqw), var(--slide-width-max)); --slide-width: var(--section-slide-width, var(--fallback-slide-width)); } } .resource-list__carousel slideshow-slides { gap: var(--resource-list-column-gap); /* Add padding to prevent hover animations from being clipped in slideshow 15px accommodates: - Scale effect (9px on each side from 1.03 scale) - Lift effect (4px upward movement) - Shadow (15px spread with -5px offset) Using 16px for better alignment with our spacing scale */ margin-block: -16px; padding-block: 16px; } .resource-list__carousel slideshow-arrows { padding-inline: var(--util-page-margin-offset); } .resource-list__carousel .resource-list__slide { width: var(--slide-width); flex: 0 0 auto; scroll-snap-align: start; min-width: 0; } /* Base styles */ .group-block, .group-block-content { position: relative; } .group-block:has(> video-background-component), .group-block:has(> .background-image-container) { overflow: hidden; } .group-block-content { height: 100%; width: 100%; } /* Container styles */ .section-content-wrapper.section-content-wrapper:where(.layout-panel-flex) .group-block--fill { flex: 1; } /* Flex behavior for width variants */ .layout-panel-flex--row > .group-block--width-fit { flex: 0; } .layout-panel-flex--row > .group-block--width-fill { flex: 1; } .layout-panel-flex--row > .group-block--width-custom { flex-basis: var(--size-style-width); } /* Dimension utilities - Height */ .group-block--height-fit { height: auto; } .group-block--height-custom, .group-block--height-fill { height: var(--size-style-height); } /* Flex behavior for height variants */ .layout-panel-flex--column > .group-block--height-fit { flex: 0 1 auto; } .layout-panel-flex--column > .group-block--height-fill { flex: 1; } .layout-panel-flex--column > .group-block--height-custom { flex-basis: var(--size-style-height); } accordion-custom { details { &::details-content, .details-content { block-size: 0; overflow-y: clip; opacity: 0; interpolate-size: allow-keywords; transition: content-visibility var(--animation-speed-slow) allow-discrete, padding-block var(--animation-speed-slow) var(--animation-easing), opacity var(--animation-speed-slow) var(--animation-easing), block-size var(--animation-speed-slow) var(--animation-easing); } /* Disable transitions when the content toggle is not caused by the direct user interaction, e.g. opening the filters on mobile. */ &:not(:focus-within)::details-content, &:not(:focus-within) .details-content { transition: none; } &:not([open]) { &::details-content, .details-content { padding-block: 0; } } &[open] { &::details-content, .details-content { opacity: 1; block-size: auto; @starting-style { block-size: 0; opacity: 0; overflow-y: clip; } &:focus-within { overflow-y: visible; } } } } } accordion-custom[data-disable-on-mobile='true'] summary { @media screen and (max-width: 749px) { cursor: auto; } } accordion-custom[data-disable-on-desktop='true'] summary { @media screen and (min-width: 750px) { cursor: auto; } } text-component { --shimmer-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50)); --shimmer-color-light: rgb(var(--color-foreground-rgb) / var(--opacity-10)); --shimmer-speed: 1.25s; display: inline-block; position: relative; transition: color var(--animation-speed-slow) ease; line-height: 1; &::after { content: attr(value); position: absolute; inset: 0; color: transparent; opacity: 0; transition: opacity var(--animation-speed-slow) var(--animation-easing); pointer-events: auto; background-image: linear-gradient( -85deg, var(--shimmer-text-color) 10%, var(--shimmer-color-light) 50%, var(--shimmer-text-color) 90% ); background-clip: text; background-size: 200% 100%; background-position: 100% 0; place-content: center; } &[shimmer] { color: transparent; &::after { opacity: 1; animation: text-shimmer var(--shimmer-speed) infinite linear; } } } @keyframes text-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } /* Animation transitions */ .transition-background-color { transition: background-color var(--animation-speed-medium) ease-in-out; } .transition-transform { transition: transform var(--animation-speed-medium) var(--animation-timing-bounce); } .transition-border-color { transition: border-color var(--animation-speed-medium) var(--animation-timing-hover); } /* Global scrollbar styles */ /* Webkit browsers */ ::-webkit-scrollbar { width: 20px; } ::-webkit-scrollbar-track { background-color: transparent; } ::-webkit-scrollbar-thumb { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-40)); border-radius: 20px; border: 6px solid transparent; background-clip: content-box; transition: background-color 0.2s; } ::-webkit-scrollbar-thumb:hover { background-color: rgb(var(--color-foreground-rgb) / var(--opacity-60)); } @media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } } /* Product card title truncation - applied only to zoom-out view */ [product-grid-view='zoom-out'] :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } /* Product card title truncation - applied on mobile regardless of view */ @media screen and (max-width: 749px) { :is(.product-card, .product-grid__card) :is(h4, .h4) { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3; } } .product-card:hover, .collection-card:hover, .resource-card:hover, .predictive-search-results__card--product:hover, .predictive-search-results__card:hover { position: relative; z-index: var(--layer-raised); transition: transform var(--hover-transition-duration) var(--hover-transition-timing), box-shadow var(--hover-transition-duration) var(--hover-transition-timing); } .header .product-card:hover, .header .collection-card:hover, .header .resource-card:hover, .header-drawer .product-card:hover, .header-drawer .collection-card:hover, .header-drawer .resource-card:hover { z-index: auto; transform: none; box-shadow: none; } /* Prevent iOS zoom on input focus by ensuring minimum 16px font size on mobile */ @media screen and (max-width: 1200px) { input, textarea, select, /* Higher specificity to override type preset classes like .paragraph, .h1, etc. */ .paragraph.paragraph input, .paragraph.paragraph textarea, .paragraph.paragraph select, .h1.h1 input, .h1.h1 textarea, .h1.h1 select, .h2.h2 input, .h2.h2 textarea, .h2.h2 select, .h3.h3 input, .h3.h3 textarea, .h3.h3 select, .h4.h4 input, .h4.h4 textarea, .h4.h4 select, .h5.h5 input, .h5.h5 textarea, .h5.h5 select, .h6.h6 input, .h6.h6 textarea, .h6.h6 select { font-size: max(1rem, 100%); } } /* ========================================================= CES PFMO — Global Dark/Gold Override (variable-driven) Paste at BOTTOM of base.css ========================================================= */ /* 1) Hard lock the theme variables that your CSS already uses */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; /* if your theme uses rgb variables for opacity mixes */ --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; /* optional: borders/shadows tuned darker */ --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* 2) Some themes scope colors through scheme wrappers (Dawn-style) */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background: #000000 !important; color: #D4AF37 !important; } /* 3) Absolute “white killers” for pages + rich text + section background layers */ html, body, #MainContent, .content-for-layout, main, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .main-page, .main-page .rte, .page .rte, .rte, .shopify-policy__container { background: #000000 !important; color: #D4AF37 !important; } /* 4) Headings + general text (kept tight, no overkill) */ h1, h2, h3, h4, h5, h6 { color: #E6C76A !important; } p, li, span, small, label, legend { color: #D4AF37 !important; } /* 5) Links */ a, a:visited { color: #C9A227 !important; } a:hover { color: #FFD700 !important; } /* 6) Cards/containers that like to default white */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .drawer, .dialog-modal, .cart__summary-container { background: #050505 !important; color: #D4AF37 !important; } /* 7) Inputs */ input, textarea, select { background: #0f0f0f !important; color: #D4AF37 !important; border-color: rgba(212,175,55,0.35) !important; } /* 8) Buttons (keeps theme structure, forces CES palette) */ .button, .button-secondary, .btn, button, button.shopify-payment-button__button--unbranded { background: #0d0d0d !important; color: #D4AF37 !important; box-shadow: inset 0 0 0 1px rgba(212,175,55,0.55) !important; border: none !important; } .button:hover, .button-secondary:hover, button:hover, button.shopify-payment-button__button--unbranded:hover:not([disabled]) { background: #D4AF37 !important; color: #000000 !important; } /* 9) BIG ONE: your CSS literally sets this to white */ zoom-dialog dialog { background: #000000 !important; color: #D4AF37 !important; } /* 10) Table headers & subtle fills inside RTE should not go grey/white */ .rte thead, .rte tr:not(:has(td)) { background-color: rgba(212,175,55,0.08) !important; } /* === CES: reduce "busy" line clutter === */ /* FAQ / accordion: soften borders and add breathing room */ .accordion, details.accordion { border-color: rgba(212, 175, 55, 0.25) !important; /* softer gold */ } .accordion + .accordion, details.accordion + details.accordion { margin-top: 10px !important; } /* If your theme uses summary rows with top/bottom borders */ .accordion summary, details.accordion summary { padding-top: 12px !important; padding-bottom: 12px !important; } /* Reduce heavy section dividers */ hr, .section-divider, .border-top, .border-bottom { border-color: rgba(212, 175, 55, 0.18) !important; } /* === CES: improve readability on gray tiles / cards === */ /* Target common Shopify/Dawn card patterns */ .multicolumn-card, .card, .rte .card, .grid .card { background: rgba(15, 15, 15, 0.92) !important; /* darken tile */ border: 1px solid rgba(212, 175, 55, 0.22) !important; border-radius: 14px !important; } /* Card inner text */ .multicolumn-card__info, .card__content, .card__information { color: rgba(245, 232, 192, 0.92) !important; /* warm off-white */ } /* Headings in cards */ .multicolumn-card__info h3, .card__heading, .card__information h3 { color: rgba(212, 175, 55, 0.95) !important; letter-spacing: 0.2px !important; } /* Paragraph text in cards */ .multicolumn-card__info p, .card__content p, .card__information p { font-size: 15px !important; line-height: 1.5 !important; color: rgba(245, 232, 192, 0.92) !important; } /* Slightly reduce gold intensity globally */ :root { --ces-gold-soft: rgba(212, 175, 55, 0.85); } a, .link, .accent, .ces-accent { color: var(--ces-gold-soft) !important; } /* ===== CES TILE READABILITY FIX ===== */ /* Commission Journey Tiles */ .multicolumn-card, .multicolumn-list__item, .card { background-color: #111111 !important; border: 1px solid rgba(212,175,55,0.18) !important; } /* Tile text */ .multicolumn-card__info, .card__content, .card__information { color: #F3E7B3 !important; } /* Tile headings */ .multicolumn-card__info h3, .card__heading { color: #D4AF37 !important; font-weight: 500 !important; } /* Tile paragraphs */ .multicolumn-card__info p, .card__information p { color: #E8DFAE !important; font-size: 15px !important; } /* ===== CES FAQ SOFTEN LINES ===== */ .accordion, details.accordion { border-color: rgba(212,175,55,0.15) !important; } .accordion summary { padding: 14px 0 !important; } /* Remove double line effect */ .accordion + .accordion { border-top: none !important; } /* ===== CES LUXURY TYPE SETTINGS ===== */ h1, h2, h3 { letter-spacing: 0.04em; } p { line-height: 1.6; } /* Improve section titles */ .section-header h2, h2 { color: #D4AF37; } /* ============================== CES — Commission Journey tiles ============================== */ /* Target the “Your Commission Journey” multicolumn cards */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background: rgba(12, 12, 12, 0.92) !important; /* deep charcoal */ color: rgba(245, 235, 195, 0.92) !important; /* warm readable body */ } /* Add a subtle premium border + depth */ .multicolumn .multicolumn-card, .multicolumn .card { border: 1px solid rgba(212, 175, 55, 0.22) !important; box-shadow: 0 10px 24px rgba(0,0,0,0.45) !important; border-radius: 14px !important; } /* Headings inside tiles */ .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading, .multicolumn .card__heading a { color: rgba(212, 175, 55, 0.95) !important; font-weight: 600 !important; letter-spacing: 0.03em !important; } /* Paragraph text inside tiles */ .multicolumn .multicolumn-card__info p, .multicolumn .card__information p { color: rgba(245, 235, 195, 0.90) !important; font-size: 15px !important; line-height: 1.65 !important; } /* If the “step number” circles are too faint, make them readable */ .multicolumn .multicolumn-card__info .caption, .multicolumn .multicolumn-card__info .rte strong { color: rgba(245, 235, 195, 0.92) !important; } /* ===================================================== CES PFMO MASTER STYLE BLOCK v1 Canvas Enchanted Studio — Global Theme Override Paste at VERY BOTTOM of base.css ===================================================== */ /* =========================== GLOBAL BACKGROUND =========================== */ body, .color-background-1, .color-background-2, .page-width, .shopify-section, .gradient, .section, .background, .main-content { background: #000000 !important; } /* =========================== TEXT HIERARCHY =========================== */ /* Primary Headings */ h1,h2,h3,h4 { color: rgba(212,175,55,0.96) !important; letter-spacing: .04em; font-weight: 600; } /* Body Text */ p, li, span, .rte { color: rgba(245,235,195,0.92) !important; line-height: 1.7; } /* Small text */ small, .caption { color: rgba(200,190,150,0.85) !important; } /* Links */ a { color: rgba(212,175,55,0.95) !important; } a:hover { color: rgba(255,215,110,1) !important; } /* =========================== NAVIGATION =========================== */ .header, .header-wrapper, .header__inline-menu { background:#000000 !important; } .header__menu-item { color:rgba(212,175,55,.95) !important; } /* =========================== ICONS =========================== */ svg, .icon { fill:rgba(212,175,55,.95) !important; } /* =========================== BUTTONS =========================== */ button, .button, .shopify-payment-button__button { background:rgba(212,175,55,.15) !important; border:1px solid rgba(212,175,55,.35) !important; color:rgba(212,175,55,.95) !important; border-radius:40px !important; letter-spacing:.05em; } button:hover, .button:hover { background:rgba(212,175,55,.28) !important; border:1px solid rgba(212,175,55,.55) !important; } /* =========================== SEPARATORS =========================== */ hr { border-color:rgba(212,175,55,.15) !important; } /* =========================== TABLES =========================== */ table { border-color:rgba(212,175,55,.18) !important; color:rgba(245,235,195,.9) !important; } td,th { border-color:rgba(212,175,55,.12) !important; } /* =========================== FAQ SECTION Cleaner less busy =========================== */ .accordion, details.accordion { border-color:rgba(212,175,55,.14) !important; background:#000 !important; } .accordion + .accordion { border-top:none !important; } .accordion summary { padding:16px 0 !important; color:rgba(212,175,55,.95) !important; } .accordion__content { padding-top:10px !important; padding-bottom:18px !important; color:rgba(245,235,195,.9) !important; } /* =========================== COMMISSION JOURNEY TILES =========================== */ .multicolumn .multicolumn-card, .multicolumn .multicolumn-card__info, .multicolumn .card, .multicolumn .card__content, .multicolumn .card__information { background:rgba(10,10,10,.92) !important; color:rgba(245,235,195,.92) !important; } .multicolumn .multicolumn-card, .multicolumn .card { border:1px solid rgba(212,175,55,.22) !important; box-shadow:0 10px 24px rgba(0,0,0,.45) !important; border-radius:14px !important; } .multicolumn .multicolumn-card__info h3, .multicolumn .card__heading { color:rgba(212,175,55,.96) !important; letter-spacing:.04em; } .multicolumn .multicolumn-card__info p { color:rgba(245,235,195,.9) !important; font-size:15px; line-height:1.7; } /* =========================== PRODUCT CARDS =========================== */ .card-wrapper, .card { background:#000 !important; border:1px solid rgba(212,175,55,.18) !important; } /* =========================== INPUT FIELDS =========================== */ input, textarea, select { background:#050505 !important; border:1px solid rgba(212,175,55,.25) !important; color:rgba(245,235,195,.95) !important; } /* =========================== FOOTER =========================== */ .footer { background:#000 !important; border-top:1px solid rgba(212,175,55,.18) !important; } /* =========================== REMOVE WHITE FLASHES =========================== */ body { background:#000 !important; } /* =========================== END PFMO BLOCK =========================== */ /* ========================================================= CES PFMO — Global Dark/Gold Override (FINAL STABLE) Paste at VERY BOTTOM of base.css ========================================================= */ /* --------------------------------- 1. CORE COLOR LOCK --------------------------------- */ :root { --color-background: #000000 !important; --color-foreground: #D4AF37 !important; --color-background-rgb: 0 0 0 !important; --color-foreground-rgb: 212 175 55 !important; --color-border-rgb: 212 175 55 !important; --color-shadow-rgb: 0 0 0 !important; } /* --------------------------------- 2. GLOBAL BACKGROUND LOCK --------------------------------- */ html, body, main, #MainContent, .content-for-layout, .shopify-section, .section, .section-background, .page-width, .page, .template-page, .template-index, .template-collection, .template-product, .template-blog, .template-article, .template-search, .template-cart { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 3. COLOR SCHEME WRAPPERS --------------------------------- */ .color-background-1, .color-background-2, .color-background-3, .color-scheme-1, .color-scheme-2, .color-scheme-3, .gradient { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 4. REMOVE WHITE CARDS --------------------------------- */ .card, .product-card, .collection-card, .resource-card, .predictive-search-results__card, .predictive-search-results__card--product, .product-grid__item, .product-grid__card, .dialog-modal, .drawer { background-color: #000000 !important; color: #D4AF37 !important; } /* --------------------------------- 5. TEXT COLOR LOCK --------------------------------- */ h1,h2,h3,h4,h5,h6, p, span, div, label, li, a { color: #D4AF37 !important; } /* --------------------------------- 6. INPUT + FORMS --------------------------------- */ input, textarea, select { background-color: #000000 !important; color: #D4AF37 !important; border-color: #D4AF37 !important; } ::placeholder { color: #B8962E !important; } /* --------------------------------- 7. BUTTONS --------------------------------- */ .button, .button-secondary, button { background-color: #000000 !important; color: #D4AF37 !important; border: 1px solid #D4AF37 !important; } .button:hover, button:hover { background-color: #111111 !important; color: #FFD700 !important; } /* --------------------------------- 8. LINKS --------------------------------- */ a { color: #D4AF37 !important; } a:hover { color: #FFD700 !important; } /* --------------------------------- 9. SECTION BACKGROUND FIX --------------------------------- */ .section-background { background-color: #000000 !important; } /* --------------------------------- 10. SCROLLBAR GOLD --------------------------------- */ ::-webkit-scrollbar-thumb { background-color: #D4AF37 !important; } ::-webkit-scrollbar-thumb:hover { background-color: #FFD700 !important; } /* CES Gentle Realms Collection Grid Control */ .collection .grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 40px !important; max-width: 1200px; margin: auto; } /* Tablet */ @media screen and (max-width: 990px) { .collection .grid { grid-template-columns: repeat(2, 1fr) !important; } } /* Mobile */ @media screen and (max-width: 600px) { .collection .grid { grid-template-columns: 1fr !important; } } /* === CES PRODUCT IMAGE FIX === */ .card__media img, .card__inner img, .product-card img, .grid__item img, .media img, .card img { display:block !important; opacity:1 !important; visibility:visible !important; } .card__media { display:block !important; visibility:visible !important; } .card__inner { display:block !important; } .media { display:block !important; } /* LAUNCH MODE FIX: Collection pages showing products too low / invisible */ .template-collection main, .template-collection .main-content, .template-collection #MainContent { min-height: auto !important; } .template-collection .collection, .template-collection .collection__wrapper, .template-collection .collection-main, .template-collection .collection-grid, .template-collection .product-grid, .template-collection .grid.product-grid { margin-top: 0 !important; padding-top: 0 !important; } .template-collection .collection-description, .template-collection .rte, .template-collection .collection__description { margin-bottom: 18px !important; } /* Prevent giant dead space before the grid */ .template-collection .collection .page-width, .template-collection .collection .page-width > * { max-height: none !important; } /* LAUNCH MODE FIX: collection product card appears but image/text not rendering */ .template-collection .card, .template-collection .card__content, .template-collection .card__information, .template-collection .card__heading, .template-collection .price { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media, .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { opacity: 1 !important; visibility: visible !important; display: block !important; } .template-collection .card__media img { width: 100% !important; height: auto !important; max-height: none !important; object-fit: cover !important; } /* LAUNCH FIX — product images not showing in collection grid */ .card__media { min-height: 280px !important; height: auto !important; } .card__media img { min-height: 280px !important; height: auto !important; width: 100% !important; object-fit: cover !important; } /* Ensure collection product images render */ .template-collection .card__media { min-height: 320px !important; } .template-collection .card__media img { min-height: 320px !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION PRODUCT IMAGES TO SHOW === */ .template-collection .card-wrapper, .template-collection .card, .template-collection .product-card-wrapper { position: relative !important; } .template-collection .card__media, .template-collection .card__media * { display: block !important; opacity: 1 !important; visibility: visible !important; max-height: none !important; } .template-collection .card__media { height: auto !important; min-height: 220px !important; overflow: visible !important; } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg { width: 100% !important; height: auto !important; object-fit: cover !important; } /* If an overlay is covering the card, keep media clickable/visible */ .template-collection .card__inner, .template-collection .collection-card__inner, .template-collection .card__content { pointer-events: auto !important; position: relative !important; z-index: 2 !important; } .template-collection .card__link, .template-collection .full-unstyled-link { z-index: 5 !important; } /* === CES DIAGNOSTIC: FORCE COLLECTION GRID IMAGES V1 === */ /* Paste at VERY BOTTOM of base.css */ .template-collection .card__media, .template-collection .card__inner, .template-collection .media { display: block !important; position: relative !important; overflow: hidden !important; min-height: 280px !important; /* gives the image area a body */ } .template-collection .card__media img, .template-collection .card__media picture, .template-collection .card__media svg, .template-collection .media img, .template-collection .media picture { display: block !important; opacity: 1 !important; visibility: visible !important; transform: none !important; filter: none !important; mix-blend-mode: normal !important; } .template-collection .card__media img, .template-collection .media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } /* PRODUCT IMAGE VISIBILITY FIX */ .card-gallery { overflow: visible !important; min-height: 400px !important; } .card-gallery img { display: block !important; width: 100% !important; height: auto !important; } .product-card, .card-wrapper, .card { min-height: 400px !important; } /* HOTFIX: force product deferred media posters / preview images to show */ .product-media__image, .deferred-media__poster, .deferred-media__poster-image, .deferred-media__poster img, .product__media img { opacity: 1 !important; visibility: visible !important; display: block !important; } /* If the poster/preview is absolutely positioned, ensure it has a box */ .deferred-media, .product-media, .product__media, .product__media-item, .media { position: relative !important; min-height: 1px !important; } /* Make sure the poster fills the media area */ .deferred-media__poster, .deferred-media__poster-image { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; } /* Make sure the image covers nicely */ .deferred-media__poster img, .deferred-media__poster-image img, .product-media__image img, .product__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; } .template-collection .media::before, .template-collection .card__media::before, .template-collection .media::after, .template-collection .card__media::after { display: none !important; content: none !important; } /* === CES PATCH: remove collection tile overlay that hides images === */ .template-collection .card::before, .template-collection .card::after, .template-collection .card__inner::before, .template-collection .card__inner::after, .template-collection .card__media::before, .template-collection .card__media::after, .template-collection .media::before, .template-collection .media::after { content: none !important; display: none !important; } /* ensure media/image layer is on top */ .template-collection .card__media, .template-collection .media, .template-collection .card__media img, .template-collection .media img { position: relative !important; z-index: 2 !important; } /* FIX: quick-add overlay background covering product card media */ .template-collection quick-add-component.quick-add, .template-collection quick-add-component.quick-add::before, .template-collection quick-add-component.quick-add::after { background: transparent !important; background-color: transparent !important; } /* just in case the theme uses the class instead of the custom element */ .template-collection .quick-add { background: transparent !important; background-color: transparent !important; } /* CES DIAGNOSTIC: stop hover surfaces from painting over empty media on collection cards */ .template-collection .card, .template-collection .card__inner, .template-collection .product-card, .template-collection .product-card__inner, .template-collection .card-gallery { background: transparent !important; background-color: transparent !important; } /* If the theme uses a hover background variable, neutralize it on collection pages */ .template-collection { --card-bg-hover: transparent !important; } /* CES DIAGNOSTIC: force card media to render so we can see if it's being hidden/collapsed */ .template-collection .media, .template-collection .card__media, .template-collection .product-card__media, .template-collection .media img, .template-collection img { opacity: 1 !important; visibility: visible !important; display: block !important; height: auto !important; } /* CES HOTFIX: ensure resource cards are visible even if fadeIn keyframes/vars are missing */ .resource-card { opacity: 1 !important; animation: none !important; } /* CES FIX: ensure fadeIn exists + animation vars have safe defaults */ :root { --animation-speed-medium: 0.25s; --animation-timing-fade-in: ease-out; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }