/* Body family 'Altivo' → Outfit. Regular/medium weights (300/400/500)
     map to Outfit Medium; bold/black (700/900) map to Outfit Bold. Italic
     reuses the upright face (Outfit ships no italic; browser synthesizes). */
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Medium.8d18117f.woff2) format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Medium.8d18117f.woff2) format('woff2');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Medium.8d18117f.woff2) format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Medium.8d18117f.woff2) format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Medium.8d18117f.woff2) format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Medium.8d18117f.woff2) format('woff2');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Bold.1e47b377.woff2) format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Bold.1e47b377.woff2) format('woff2');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Bold.1e47b377.woff2) format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Altivo';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Outfit-Bold.1e47b377.woff2) format('woff2');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
  }

  /* Heading family 'Peridot' → Freeman. Freeman is only ever shown at
     Regular, so the single Regular file is registered across every heading
     weight (500–900) the theme applies — font-bold/black headings render
     true Regular, never a faux-bold. */
  @font-face {
    font-family: 'Peridot';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Freeman-Regular.609e6805.woff2) format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Peridot';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Freeman-Regular.609e6805.woff2) format('woff2');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Peridot';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Freeman-Regular.609e6805.woff2) format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Peridot';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Freeman-Regular.609e6805.woff2) format('woff2');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
  }
  @font-face {
    font-family: 'Peridot';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/Freeman-Regular.609e6805.woff2) format('woff2');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
  }

  :root:root {
    --ayr-midnight-navy: oklch(0.3334 0.0759 262.15);
    --ayr-blue: oklch(0.5027 0.1425 250.05);
    --ayr-cloud-blue: oklch(0.92 0.03 240);
    --ayr-light-blue: oklch(0.971 0.0059 239.82);

    --ayr-leafy-green: oklch(0.45 0.10 140);
    --ayr-wonder-green: oklch(0.7704 0.1531 127.45);
    --ayr-lime-green: oklch(0.80 0.13 115);

    --ayr-blaze-orange: oklch(0.6763 0.1629 40.11);
    --ayr-joint-paper: oklch(0.9549 0.0076 61.45);
    --ayr-carbon-black: oklch(0 0 0);

    --ayr-roach-dust-grey: oklch(0.45 0 0);
    --ayr-ash-cloud-grey: oklch(0.65 0 0);
    --ayr-faded-gray: oklch(0.80 0 0);

    --ayr-yellow: oklch(0.80 0.16 95);
    --ayr-light-yellow: oklch(0.90 0.10 95);
    --ayr-pink: oklch(0.75 0.18 350);
    --ayr-light-pink: oklch(0.85 0.12 350);
    --ayr-red: oklch(0.62 0.20 25);
    --ayr-light-red: oklch(0.75 0.15 25);
    --ayr-purple: oklch(0.40 0.12 300);
    --ayr-light-purple: oklch(0.55 0.10 300);
    --ayr-brown: oklch(0.45 0.10 60);
    --ayr-light-brown: oklch(0.60 0.12 60);

    --ayr-background: oklch(1 0 0);
    --ayr-foreground: var(--ayr-midnight-navy);
    --ayr-on-dark: #ffffff;
    --ayr-primary: var(--ayr-midnight-navy);
    --ayr-primary-foreground: var(--ayr-on-dark);
    --ayr-secondary: var(--ayr-cloud-blue);
    --ayr-secondary-foreground: var(--ayr-midnight-navy);
    --ayr-muted: var(--ayr-joint-paper);
    --ayr-muted-foreground: var(--ayr-roach-dust-grey);
    --ayr-accent: var(--ayr-light-blue);
    --ayr-accent-foreground: var(--ayr-midnight-navy);
    --ayr-destructive: var(--ayr-blaze-orange);
    --ayr-border: var(--ayr-faded-gray);
    --ayr-input: var(--ayr-faded-gray);
    --ayr-ring: var(--ayr-blue);

    --ayr-font-body: 'Altivo', system-ui, -apple-system, sans-serif;
    --ayr-font-heading: 'Peridot', 'Altivo', system-ui, -apple-system, sans-serif;

    /* ------------------------------------------------------------
     * Branding contract — header / footer / hero token set
     *
     * Hex literals from §1.2 of the Dutchie SDK branding contract.
     * These are the canonical values for the shared cross-layer
     * components; the Next.js layer mirrors them under the same
     * names so the storefront and marketing site share identical
     * chrome.
     * ------------------------------------------------------------ */
    --header-navy: #163259;
    --header-text: #0F2037;
    --header-paper: #F7F5F1;
    --header-paper-deep: #F2EEE7;
    --header-lime: #97C454;
    --header-wonder: #99C652;
    --header-blue: #297AC5;
    --header-success: #30A65B;
    --header-muted: #51627A;
    --header-border: #D8DFE8;
    --header-input: #EFF1F5;

    /* Announcement bar (legacy palette) */
    --leafy-green: #3F7D34;

    --ayr-radius: 0.625rem;
    --ayr-radius-sm: calc(var(--ayr-radius) * 0.6);
    --ayr-radius-md: calc(var(--ayr-radius) * 0.8);
    --ayr-radius-lg: var(--ayr-radius);
    --ayr-radius-xl: calc(var(--ayr-radius) * 1.4);
    --ayr-radius-2xl: calc(var(--ayr-radius) * 1.8);

    /* ------------------------------------------------------------
     * Dutchie --dcm-* overrides
     *
     * Maps AYR brand tokens onto Dutchie's native component design
     * tokens. Affects every Dutchie-rendered surface our theme does
     * NOT replace with a custom slot: homepage Categories block,
     * category-page filter sidebar, product detail page, cart drawer,
     * modals, age gate, checkout, breadcrumbs, skeletons, etc.
     *
     * Reference: docs.dutchie.com/.../global-styles (394 vars total).
     * Only vars that need to diverge from Dutchie defaults to carry
     * AYR presence are set here; everything else inherits.
     * ------------------------------------------------------------ */

    /* Global colors */
    --dcm-color-primary: var(--ayr-blue);
    --dcm-color-body-bg: var(--ayr-joint-paper);
    --dcm-color-surface: var(--ayr-background);
    --dcm-color-surface-hover: color-mix(in oklch, var(--ayr-blue) 6%, var(--ayr-background));
    --dcm-color-surface-muted: var(--ayr-cloud-blue);
    --dcm-color-text-primary: var(--ayr-midnight-navy);
    --dcm-color-text-secondary: var(--ayr-roach-dust-grey);
    --dcm-color-text-muted: var(--ayr-ash-cloud-grey);
    --dcm-color-text-inverted: var(--ayr-on-dark);
    --dcm-color-border: var(--ayr-faded-gray);
    --dcm-color-border-dark: var(--ayr-roach-dust-grey);
    --dcm-color-focus: var(--ayr-blue);
    --dcm-color-focus-shadow: color-mix(in oklch, var(--ayr-blue) 30%, transparent);
    --dcm-color-navbar-bg: var(--ayr-midnight-navy);

    /* Status */
    --dcm-color-status-open: var(--ayr-wonder-green);
    --dcm-color-status-closed: var(--ayr-red);
    --dcm-color-status-preorder: var(--ayr-ash-cloud-grey);
    --dcm-color-status-coming-soon: var(--ayr-yellow);
    --dcm-status-open-color: var(--ayr-wonder-green);
    --dcm-status-closed-color: var(--ayr-red);
    --dcm-status-preorder-color: var(--ayr-ash-cloud-grey);
    --dcm-status-coming-soon-color: var(--ayr-yellow);
    --dcm-status-label-color: var(--ayr-roach-dust-grey);

    /* Typography */
    --dcm-font-primary: var(--ayr-font-body);
    --dcm-font-secondary: var(--ayr-font-heading);

    /* Radius scale */
    --dcm-radius-sm: var(--ayr-radius-sm);
    --dcm-radius-md: var(--ayr-radius-md);
    --dcm-radius-lg: var(--ayr-radius-lg);
    --dcm-radius-buttons: var(--ayr-radius-md);
    --dcm-radius-cards: var(--ayr-radius-xl);

    /* Section titles (shared by Categories, Brands, carousels) */
    --dcm-section-title-color: var(--ayr-midnight-navy);
    --dcm-section-subtitle-color: var(--ayr-roach-dust-grey);

    /* Categories (native homepage block) */
    --dcm-categories-card-bg: var(--ayr-background);
    --dcm-categories-card-border-color: transparent;
    --dcm-categories-card-text-color: var(--ayr-midnight-navy);
    --dcm-categories-card-hover-shadow: 0 12px 28px -8px color-mix(in oklch, var(--ayr-midnight-navy) 24%, transparent);
    --dcm-categories-view-all-bg: var(--ayr-midnight-navy);
    --dcm-categories-view-all-color: var(--ayr-on-dark);

    /* Inline categories (chip rail on category pages) */
    --dcm-inline-categories-heading-color: var(--ayr-midnight-navy);
    --dcm-inline-categories-divider-color: var(--ayr-faded-gray);
    --dcm-inline-categories-chip-bg: transparent;
    --dcm-inline-categories-chip-text-color: var(--ayr-midnight-navy);
    --dcm-inline-categories-chip-border-color: var(--ayr-faded-gray);
    --dcm-inline-categories-chip-hover-border-color: var(--ayr-blue);

    /* Brands */
    --dcm-brands-title-color: var(--ayr-midnight-navy);
    --dcm-brands-card-bg: var(--ayr-background);
    --dcm-brands-card-border-color: transparent;
    --dcm-brands-card-border-radius: var(--ayr-radius-xl);
    --dcm-brands-card-shadow: 0 1px 2px color-mix(in oklch, var(--ayr-midnight-navy) 6%, transparent);
    --dcm-brands-card-hover-shadow: 0 12px 28px -8px color-mix(in oklch, var(--ayr-midnight-navy) 24%, transparent);
    --dcm-brands-card-name-color: var(--ayr-midnight-navy);
    --dcm-brands-card-placeholder-color: var(--ayr-roach-dust-grey);
    --dcm-brands-card-placeholder-bg: var(--ayr-cloud-blue);
    --dcm-brands-no-results-color: var(--ayr-roach-dust-grey);

    /* Product (card surfaces + detail page) */
    --dcm-product-page-bg: var(--ayr-joint-paper);
    --dcm-product-name-color: var(--ayr-midnight-navy);
    --dcm-product-brand-color: var(--ayr-roach-dust-grey);
    --dcm-product-description-color: var(--ayr-midnight-navy);
    --dcm-product-subheading-color: var(--ayr-midnight-navy);
    --dcm-product-price-color: var(--ayr-midnight-navy);
    --dcm-product-price-strikethrough-color: var(--ayr-ash-cloud-grey);
    --dcm-product-price-muted-color: var(--ayr-ash-cloud-grey);
    --dcm-product-option-bg: var(--ayr-background);
    --dcm-product-option-border-color: var(--ayr-faded-gray);
    --dcm-product-option-text-color: var(--ayr-midnight-navy);
    --dcm-product-input-bg: var(--ayr-background);
    --dcm-product-input-border-color: var(--ayr-faded-gray);
    --dcm-product-detail-text-color: var(--ayr-midnight-navy);
    --dcm-product-detail-muted-color: var(--ayr-roach-dust-grey);
    --dcm-product-effect-bg: var(--ayr-cloud-blue);
    --dcm-product-effect-text-color: var(--ayr-midnight-navy);
    --dcm-product-progress-bg: var(--ayr-cloud-blue);
    --dcm-product-progress-fill: var(--ayr-wonder-green);
    --dcm-product-chip-bg: var(--ayr-cloud-blue);
    --dcm-product-chip-text-color: var(--ayr-midnight-navy);
    --dcm-product-chip-hover-bg: color-mix(in oklch, var(--ayr-cloud-blue) 82%, var(--ayr-blue));
    --dcm-product-accordion-icon-color: var(--ayr-roach-dust-grey);

    /* Carousel navigation buttons */
    --dcm-carousel-btn-bg: var(--ayr-background);
    --dcm-carousel-btn-hover-bg: var(--ayr-cloud-blue);
    --dcm-carousel-btn-arrow-color: var(--ayr-midnight-navy);
    --dcm-carousel-btn-shadow: 0 4px 12px -2px color-mix(in oklch, var(--ayr-midnight-navy) 18%, transparent);

    /* Filter sidebar (category pages) */
    --dcm-filter-heading-color: var(--ayr-midnight-navy);
    --dcm-filter-text-color: var(--ayr-midnight-navy);
    --dcm-filter-border-color: var(--ayr-faded-gray);
    --dcm-filter-icon-color: var(--ayr-roach-dust-grey);
    --dcm-filter-search-bg: var(--ayr-background);
    --dcm-filter-search-border-color: var(--ayr-faded-gray);
    --dcm-filter-search-text-color: var(--ayr-midnight-navy);
    --dcm-filter-search-placeholder-color: var(--ayr-ash-cloud-grey);
    --dcm-filter-search-icon-color: var(--ayr-roach-dust-grey);
    --dcm-filter-search-focus-border-color: var(--ayr-blue);
    --dcm-filter-search-focus-shadow: 0 0 0 3px color-mix(in oklch, var(--ayr-blue) 22%, transparent);

    /* Site search input */
    --dcm-search-input-border-color: var(--ayr-faded-gray);
    --dcm-search-input-focus-border-color: var(--ayr-blue);
    --dcm-search-input-focus-shadow: 0 0 0 3px color-mix(in oklch, var(--ayr-blue) 22%, transparent);
    --dcm-search-input-font-family: var(--ayr-font-body);
    --dcm-search-icon-color: var(--ayr-roach-dust-grey);

    /* Breadcrumbs */
    --dcm-breadcrumb-link-color: var(--ayr-roach-dust-grey);
    --dcm-breadcrumb-active-color: var(--ayr-midnight-navy);
    --dcm-breadcrumb-separator-color: var(--ayr-faded-gray);

    /* Content header (list page title strip) */
    --dcm-content-header-text-color: var(--ayr-midnight-navy);
    --dcm-content-header-border-color: var(--ayr-faded-gray);
    --dcm-content-header-icon-color: var(--ayr-roach-dust-grey);

    /* Cart drawer + cart button */
    --dcm-cart-bg: var(--ayr-background);
    --dcm-cart-content-bg: var(--ayr-joint-paper);
    --dcm-cart-text-color: var(--ayr-midnight-navy);
    --dcm-cart-text-muted-color: var(--ayr-roach-dust-grey);
    --dcm-cart-border-color: var(--ayr-faded-gray);
    --dcm-cart-item-bg: var(--ayr-background);
    --dcm-cart-item-border-color: var(--ayr-faded-gray);
    --dcm-cart-item-separator-color: var(--ayr-faded-gray);
    --dcm-cart-price-color: var(--ayr-midnight-navy);
    --dcm-cart-toggle-bg: var(--ayr-cloud-blue);
    --dcm-cart-toggle-active-bg: var(--ayr-background);
    --dcm-cart-backdrop-color: color-mix(in oklch, var(--ayr-midnight-navy) 55%, transparent);
    --dcm-cart-btn-bg-active: var(--ayr-blue);
    --dcm-cart-btn-bg-empty: var(--ayr-midnight-navy);
    --dcm-cart-btn-text-active: var(--ayr-on-dark);
    --dcm-cart-btn-text-empty: var(--ayr-on-dark);
    --dcm-cart-btn-hover-bg: color-mix(in oklch, var(--ayr-blue) 85%, black);

    /* Popover + account popover */
    --dcm-popover-bg: var(--ayr-background);
    --dcm-popover-item-color: var(--ayr-midnight-navy);
    --dcm-popover-item-hover-bg: var(--ayr-cloud-blue);
    --dcm-popover-shadow: 0 14px 40px -12px color-mix(in oklch, var(--ayr-midnight-navy) 28%, transparent);
    --dcm-account-popover-item-color: var(--ayr-midnight-navy);
    --dcm-account-popover-item-hover-bg: var(--ayr-cloud-blue);
    --dcm-account-popover-divider-color: var(--ayr-faded-gray);
    --dcm-account-popover-logout-color: var(--ayr-blaze-orange);
    --dcm-account-popover-shadow: 0 14px 40px -12px color-mix(in oklch, var(--ayr-midnight-navy) 28%, transparent);
    --dcm-account-link-icon-color: var(--ayr-on-dark);

    /* Info bar (announcements / promos) */
    --dcm-infobar-bg: var(--ayr-cloud-blue);
    --dcm-infobar-text-color: var(--ayr-midnight-navy);
    --dcm-infobar-border-color: var(--ayr-faded-gray);

    /* Banner */
    --dcm-banner-border-radius: var(--ayr-radius-xl);

    /* Modal */
    --dcm-modal-bg: var(--ayr-background);
    --dcm-modal-text-color: var(--ayr-midnight-navy);
    --dcm-modal-footer-bg: var(--ayr-joint-paper);
    --dcm-modal-footer-text-color: var(--ayr-midnight-navy);
    --dcm-modal-close-color: var(--ayr-roach-dust-grey);
    --dcm-modal-backdrop-color: color-mix(in oklch, var(--ayr-midnight-navy) 55%, transparent);
    --dcm-modal-shadow: 0 28px 70px -16px color-mix(in oklch, var(--ayr-midnight-navy) 40%, transparent);
    --dcm-modal-border-radius: var(--ayr-radius-xl);

    /* Age gate */
    --dcm-age-gate-modal-bg: var(--ayr-background);
    --dcm-age-gate-modal-text-color: var(--ayr-midnight-navy);
    --dcm-age-gate-body-color: var(--ayr-roach-dust-grey);
    --dcm-age-gate-link-color: var(--ayr-blue);
    --dcm-age-gate-backdrop-color: color-mix(in oklch, var(--ayr-midnight-navy) 55%, transparent);
    --dcm-age-gate-backdrop-blur: 10px;
    --dcm-age-gate-modal-shadow: 0 28px 70px -16px color-mix(in oklch, var(--ayr-midnight-navy) 40%, transparent);
    --dcm-age-gate-modal-border-radius: var(--ayr-radius-xl);

    /* Login nudge */
    --dcm-login-nudge-bg: var(--ayr-background);
    --dcm-login-nudge-text-color: var(--ayr-midnight-navy);
    --dcm-login-nudge-link-color: var(--ayr-blue);
    --dcm-login-nudge-close-color: var(--ayr-roach-dust-grey);
    --dcm-login-nudge-social-btn-bg: var(--ayr-cloud-blue);
    --dcm-login-nudge-shadow: 0 14px 40px -12px color-mix(in oklch, var(--ayr-midnight-navy) 28%, transparent);
    --dcm-login-nudge-apple-icon-color: var(--ayr-midnight-navy);
    --dcm-login-nudge-font-family: var(--ayr-font-body);

    /* Logged-out CTA card */
    --dcm-logged-out-cta-bg: var(--ayr-background);
    --dcm-logged-out-cta-border-color: var(--ayr-faded-gray);
    --dcm-logged-out-cta-border-radius: var(--ayr-radius-xl);
    --dcm-logged-out-cta-text-color: var(--ayr-midnight-navy);
    --dcm-logged-out-cta-subtext-color: var(--ayr-roach-dust-grey);
    --dcm-logged-out-cta-link-color: var(--ayr-blue);

    /* Skeleton loaders */
    --dcm-skeleton-bg: var(--ayr-cloud-blue);
    --dcm-skeleton-border-color: var(--ayr-faded-gray);
    --dcm-skeleton-shimmer-from: color-mix(in oklch, var(--ayr-background) 0%, transparent);
    --dcm-skeleton-shimmer-to: color-mix(in oklch, var(--ayr-background) 60%, transparent);

    /* Drawer nav (mobile menu) — navy chrome to match site header */
    --dcm-drawer-bg: var(--ayr-midnight-navy);
    --dcm-drawer-status-bg: color-mix(in oklch, var(--ayr-midnight-navy) 92%, black);
    --dcm-drawer-accent-color: var(--ayr-blue);
    --dcm-drawer-nav-heading-color: var(--ayr-on-dark);
    --dcm-drawer-nav-title-text-color: var(--ayr-on-dark);
    --dcm-drawer-nav-link-color: color-mix(in oklch, var(--ayr-on-dark) 80%, transparent);
    --dcm-drawer-tab-active-color: var(--ayr-on-dark);
    --dcm-drawer-tab-inactive-color: color-mix(in oklch, var(--ayr-on-dark) 55%, transparent);
    --dcm-drawer-close-btn-color: var(--ayr-on-dark);

    /* Skip link (a11y) */
    --dcm-skip-link-bg: var(--ayr-blue);
    --dcm-skip-link-color: var(--ayr-on-dark);

    /* Privacy footer */
    --dcm-privacy-footer-bg: var(--ayr-midnight-navy);
    --dcm-privacy-footer-border-color: color-mix(in oklch, var(--ayr-on-dark) 10%, transparent);
    --dcm-privacy-footer-divider-color: color-mix(in oklch, var(--ayr-on-dark) 14%, transparent);
    --dcm-privacy-footer-text-color: color-mix(in oklch, var(--ayr-on-dark) 70%, transparent);
    --dcm-privacy-footer-text-hover-color: var(--ayr-on-dark);

    /* Checkout (pre-payment surfaces) */
    --dcm-checkout-heading-color: var(--ayr-roach-dust-grey);
    --dcm-checkout-section-heading-color: var(--ayr-midnight-navy);
    --dcm-checkout-section-border-color: var(--ayr-faded-gray);
    --dcm-checkout-text-color: var(--ayr-midnight-navy);
    --dcm-checkout-text-muted-color: var(--ayr-roach-dust-grey);
    --dcm-checkout-link-color: var(--ayr-blue);
    --dcm-checkout-input-bg: var(--ayr-background);
    --dcm-checkout-input-border-color: var(--ayr-faded-gray);
    --dcm-checkout-summary-bg: var(--ayr-joint-paper);
    --dcm-checkout-summary-text-color: var(--ayr-midnight-navy);
    --dcm-checkout-summary-border-color: var(--ayr-faded-gray);
    --dcm-checkout-summary-total-color: var(--ayr-midnight-navy);
    --dcm-checkout-payment-tab-bg: var(--ayr-background);
    --dcm-checkout-payment-tab-border-color: var(--ayr-faded-gray);
    --dcm-checkout-payment-content-bg: var(--ayr-background);
    --dcm-checkout-disclaimer-color: var(--ayr-roach-dust-grey);
    --dcm-checkout-save-info-bg: var(--ayr-cloud-blue);

    /* User button (header) */
    --dcm-user-btn-color: var(--ayr-on-dark);
    --dcm-user-btn-name-color: var(--ayr-on-dark);
    --dcm-user-btn-name-border-color: color-mix(in oklch, var(--ayr-on-dark) 20%, transparent);
  }

  body {
    background: var(--ayr-joint-paper);
    color: var(--ayr-foreground);
    font-family: var(--ayr-font-body);
  }

  /* ------------------------------------------------------------
   * Filter sidebar text size (category / product list pages)
   *
   * Dutchie's filter sidebar exposes only colour/border/shadow
   * tokens (--dcm-filter-*) — there is NO font-size token for it,
   * unlike most other components. Its section headings render at
   * a hardcoded 11px and option labels at 13px, which reads small.
   *
   * The host menu is not in Shadow DOM and our GlobalStyles loads
   * last, so plain element rules win on source order without
   * !important. We scope under the sidebar's stable styled-
   * components container class and target the stable component
   * prefixes (the trailing hash churns per build; the
   * 'header__Heading-sc-vs5mod' / 'checkbox-input__Text' prefixes
   * are derived from component name + file and are stable).
   *
   * Verified live on ayr-dev.com: 6 headings + 25 option labels
   * resolve, no collateral on other surfaces. If Dutchie renames
   * these components in a future release this rule no-ops (text
   * falls back to their default size) rather than breaking layout.
   * ------------------------------------------------------------ */
  :root:root {
    --ayr-filter-heading-size: 0.875rem; /* 14px (was 11px) */
    --ayr-filter-label-size: 0.9375rem;  /* 15px (was 13px) */
  }

  .two-column__TwoColumnSidebar-sc-6qosmq-1 [class*="header__Heading-sc-vs5mod"] {
    font-size: var(--ayr-filter-heading-size);
  }

  .two-column__TwoColumnSidebar-sc-6qosmq-1 [class*="checkbox-input__Text"] {
    font-size: var(--ayr-filter-label-size);
  }

  /* Dutchie's host wraps page content in main#main-content with horizontal
   * padding (nominally ~16px, but it varies by breakpoint — notably less on
   * mobile). Most surfaces (Categories grid, Recommended-for-you carousel,
   * PLP grids) rely on that padding to keep their headings off the viewport
   * edge.
   *
   * --ayr-main-pad records the nominal value for reference, but the fullBleed
   * mixin (store-front/full-bleed.ts) no longer consumes it: it cancels the
   * host padding with calc(50% - 50vw), which resolves to the actual padding
   * whatever it is — so a wrong assumption here can no longer make a
   * full-bleed slot overflow. */
  :root:root {
    --ayr-main-pad: 1rem;
  }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--ayr-font-heading);
    color: var(--ayr-foreground);
  }

  *,
  ::before,
  ::after {
    box-sizing: border-box;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  ol,
  ul,
  dl,
  dd {
    margin: 0;
    padding: 0;
  }

  ol,
  ul,
  dl {
    list-style: none;
  }

  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    display: block;
  }

  img,
  video {
    max-width: 100%;
    height: auto;
  }

  button {
    appearance: none;
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    font-family: inherit;
    font-size: 100%;
    line-height: 1.15;
    margin: 0;
    padding: 0;
  }

  input,
  textarea,
  select {
    font-family: inherit;
  }



  /*
  Font: 		Microphone Check
  Style: 		Regular
  URL: 		https://youworkforthem.com/font/T19138/microphone-check
  Foundry: 	ikiiko type
  Foundry: 	https://youworkforthem.com/designer/1754/ikiiko-type
  Copyright:	Copyright 2023 Ikiiko Type, Inc.
  Version: 	18
  Created:	April 02, 2026
  License: 	https://www.youworkforthem.com/font-license 
  License: 	The WebFont(s) listed in this document must follow the YouWorkForThem
  			WebFont license rules. All other parties are strictly restricted 
  			from using the WebFonts(s) listed without a purchased license. 
  			All details above must always remain unaltered and visible in your CSS.
  */
  /* Heading family → Microphone Check. The face ships at Regular only, so
     the one file is registered across every heading weight the components
     apply (400–900): bold and black headings render true Regular, never a
     synthesized bold. */
  @font-face {
    font-family: 'DispensaryHeading';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/DispensaryHeading-Regular.9024914d.woff2) format('woff2');
    font-weight: 400 900;
    font-style: normal;
    font-display: swap;
  }
  /* Body family → Roboto, one variable file for the whole weight axis. Italic
     reuses the upright face (the browser slants it), as the AYR base does. */
  @font-face {
    font-family: 'DispensaryBody';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/DispensaryBody-Variable.1404ca34.woff2) format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
  }
  /* Condensed family → Roboto Condensed, Bold only. Read by this theme's own
     chrome through the theme-local variable its slot roots declare (see
     ./typography.ts); every weight request resolves to this one file. */
  @font-face {
    font-family: 'DispensaryCondensed';
    src: url(https://0928c6c4.ayr-8js.pages.dev/static/css/assets/DispensaryCondensed-Bold.ab74f0c2.woff2) format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
  }
  :root:root {
    /* ── Palette ─────────────────────────────────────────────────────
     * The eight Figma brand colors, mapped onto the AYR token names by
     * the ROLE each token plays in the shared components. Written in
     * oklch() to match the rest of the sheet; the Figma hex is in the
     * trailing comment and is the authority. */

    /* Dark Green — the brand's only text-safe color. Carries primary
     * text, product-card titles, the footer and nav-strip ground, and
     * every role AYR gave to navy or blue. 12.19:1 on white. */
    --ayr-midnight-navy: oklch(0.3232 0.0693 147.63); /* #173D1E Dark Green */
    /* The brand has no blue and no mid-tone that passes AA as text, so
     * this collapses onto Dark Green rather than onto Light Green —
     * pointing it at Light Green would have pushed every link, eyebrow
     * and chip border to 2.08:1, a contrast regression dressed up as a
     * re-skin. Decorative mid-green lives in --ayr-wonder-green. */
    --ayr-blue: oklch(0.3232 0.0693 147.63); /* #173D1E Dark Green */
    /* DERIVED — no Figma equivalent. Pale green wash standing in for the
     * AYR blue tint on chips, skeletons and hover fills. #DEF2D9 */
    --ayr-cloud-blue: oklch(0.94 0.04 140);
    --ayr-light-blue: oklch(0.9612 0 0); /* #F2F2F2 Page Gray */

    --ayr-leafy-green: oklch(0.3232 0.0693 147.63); /* #173D1E Dark Green */
    /* Light Green — SURFACE ONLY (2.08:1 on white). Takes Dark Green
     * text, never white. */
    --ayr-wonder-green: oklch(0.7564 0.1293 140.13); /* #82C474 Light Green */
    /* "High Viz" — SURFACE ONLY on light (1.16:1 on white), but the
     * brightest thing the brand owns, so it is the accent on dark:
     * 10.47:1 against Dark Green. Every text use of this token in the
     * library is on a dark ground. */
    --ayr-lime-green: oklch(0.9347 0.2260 121.71); /* #D2FF00 High Viz */

    /* Orange — SURFACE ONLY (2.33:1 on white); the brand pairs it with
     * Dark Green text (5.23:1). See the note under --ayr-destructive. */
    --ayr-blaze-orange: oklch(0.7505 0.1791 58.28); /* #FF8C00 Orange */
    /* Page background. The brand drops AYR's cream for a neutral gray;
     * the marketing site seeds the same value at the edge for first
     * paint, so a cold storefront load no longer transitions. */
    --ayr-joint-paper: oklch(0.9612 0 0); /* #F2F2F2 Page Gray */
    --ayr-carbon-black: oklch(0 0 0); /* #000000 Black */

    --ayr-roach-dust-grey: oklch(0.3506 0.0141 123.90); /* #393C34 Neutral/700 */
    /* KEPT at the AYR value — the brand palette has no third neutral.
     * Used for strikethrough prices, placeholders and muted icons; at
     * 3.23:1 on white it is below AA for body text, which it was under
     * AYR too. Flagged rather than invented. */
    --ayr-ash-cloud-grey: oklch(0.65 0 0);
    --ayr-faded-gray: oklch(0.8452 0 0); /* #CCCCCC Light Gray */

    /* Category / status hues — KEPT at the AYR values on purpose.
     * These are functional, not brand: strain-type chips, expiration
     * warnings, offer badges and the medical-only badge rely on hue to
     * tell states apart, and an eight-color palette with one green,
     * one yellow-green and one orange cannot express them without
     * making distinct states look alike. The Figma defines no category
     * colors, so there is nothing to map them to. */
    --ayr-yellow: oklch(0.80 0.16 95);
    --ayr-light-yellow: oklch(0.90 0.10 95);
    --ayr-pink: oklch(0.75 0.18 350);
    --ayr-light-pink: oklch(0.85 0.12 350);
    --ayr-red: oklch(0.62 0.20 25);
    --ayr-light-red: oklch(0.75 0.15 25);
    --ayr-purple: oklch(0.40 0.12 300);
    --ayr-light-purple: oklch(0.55 0.10 300);
    --ayr-brown: oklch(0.45 0.10 60);
    --ayr-light-brown: oklch(0.60 0.12 60);

    /* ── Semantic tokens ─────────────────────────────────────────────
     * The Figma semantic roles, matching the marketing site's :root
     * one for one. Measured WCAG 2.1 ratios in the comments. */
    --ayr-background: oklch(1 0 0); /* white */
    --ayr-foreground: var(--ayr-midnight-navy); /* 12.19:1 on white */
    --ayr-on-dark: #ffffff;
    /* Dark Green / white — 12.19:1 */
    --ayr-primary: var(--ayr-midnight-navy);
    --ayr-primary-foreground: var(--ayr-on-dark);
    /* High Viz / Dark Green — 10.47:1. Was the blue tint under AYR;
     * High Viz is the brand's secondary surface. */
    --ayr-secondary: var(--ayr-lime-green);
    --ayr-secondary-foreground: var(--ayr-midnight-navy);
    /* Page Gray / Neutral-700 — 10.03:1 */
    --ayr-muted: var(--ayr-joint-paper);
    --ayr-muted-foreground: var(--ayr-roach-dust-grey);
    /* Pale green wash / Dark Green — 10.34:1 */
    --ayr-accent: var(--ayr-cloud-blue);
    --ayr-accent-foreground: var(--ayr-midnight-navy);
    /* Orange. A surface, not a text color — the brand pairs it with
     * Dark Green (5.23:1). Four library badges fill with this token and
     * hard-code white text (2.33:1); see the report — fixing those needs
     * a change inside the AYR components, which this theme cannot make. */
    --ayr-destructive: var(--ayr-blaze-orange);
    --ayr-border: var(--ayr-faded-gray);
    --ayr-input: var(--ayr-faded-gray);
    --ayr-ring: var(--ayr-midnight-navy); /* Dark Green, = primary */

    /* ── Typography ──────────────────────────────────────────────────
     * The brand faces registered at the top of this sheet. The AYR
     * 'Peridot' / 'Altivo' families stay declared by the base and unused
     * here; the marketing site serves the same files, so the two layers
     * share one typeface across the proxy. Only these two tokens exist:
     * the condensed face is reached through the theme-local variable in
     * ./typography.ts, never through a third --ayr-font-* token. */
    --ayr-font-body: 'DispensaryBody', system-ui, -apple-system, sans-serif;
    --ayr-font-heading: 'DispensaryHeading', 'DispensaryBody', system-ui, -apple-system, sans-serif;

    /* ── Header / footer / hero contract ─────────────────────────────
     * The --header-* names are shared with the marketing site's chrome;
     * the values are this theme's own, read off the Figma "NV Open
     * Header", "NV Closed Header" and "Paper Footer" symbols. The
     * marketing site binds the same frame colors to four of these names
     * differently (High Viz in --header-lime, Orange in --header-blue),
     * and each side paints the frame correctly, so a value changes only
     * when the frame does. global-styles.test.ts lists the four.
     *
     * Eight brand colors cannot express the eleven distinctions the AYR
     * header made, so several collapse: navy / text / blue are one value,
     * and paper / input are one value. Any state that told itself apart
     * by hue alone now needs a non-color cue — weight, size, icon or
     * border. Noted per token below. */
    --header-navy: #173D1E; /* Dark Green — nav strip + footer ground, CTA fill */
    --header-text: #173D1E; /* Dark Green — body text on light chrome */
    --header-paper: #F2F2F2; /* Page Gray — header row 1, mobile menu, the hero's slide copy */
    --header-paper-deep: #E6E6E6; /* DERIVED — hover gradient end, no Figma equivalent */
    --header-lime: #82C474; /* Light Green — the shared components' lime role (drawer accents) and the copies' secondary accents (menu rules, panel buttons, the hero's eyebrow, lime CTA and dots); the frame's High Viz accents bind --ayr-lime-green instead, and the announcement bar reads its own two tokens below */
    --header-wonder: #82C474; /* Light Green — the mega menu's promo CTA only */
    --header-blue: #173D1E; /* was #297AC5 — eyebrows no longer differ in hue */
    --header-success: #82C474; /* was #30A65B — "Open now"; fails AA as text on white */
    --header-muted: #393C34; /* Neutral/700 — muted text, 11.23:1 on white */
    --header-border: #CCCCCC; /* Light Gray */
    --header-input: #F2F2F2; /* Page Gray — kept for the contract; unread by this theme (the AYR search field used it; this theme's is white) */

    /* Announcement bar, this theme's own copy
     * (store-front/announcement-bar.tsx), from the Homepage frame: the strip
     * 3059:2329 fills High Viz and its label 3059:2330 is Dark Green. Two
     * tokens of the bar's own rather than --header-lime, which also drives
     * the drawer accents and the promo CTA, where High Viz fails contrast on
     * the light grounds. Dark Green on High Viz is 10.5:1. */
    --announcement-fill: #D2FF00; /* High Viz — 3059:2329 */
    --announcement-text: #173D1E; /* Dark Green — 3059:2330 */

    /* Consent-banner primary CTA fill (white text hard-coded in the
     * component, so this has to stay text-safe: 12.19:1). */
    --leafy-green: #173D1E;

    /* ── Radii ───────────────────────────────────────────────────────
     * Unchanged: the Figma defines no radius, spacing or shadow tokens,
     * and the marketing site kept the same 0.625rem base. Product cards
     * and buttons derive from --ayr-radius. One exception, read from the
     * Homepage frame: Dutchie's card radius, set with the Dutchie-native
     * surfaces at the end of this block. */
    --ayr-radius: 0.625rem;
    --ayr-radius-sm: calc(var(--ayr-radius) * 0.6);
    --ayr-radius-md: calc(var(--ayr-radius) * 0.8);
    --ayr-radius-lg: var(--ayr-radius);
    --ayr-radius-xl: calc(var(--ayr-radius) * 1.4);
    --ayr-radius-2xl: calc(var(--ayr-radius) * 1.8);

    /* ── Dutchie-rendered surfaces follow the brand primary ──────────
     * The AYR base declares its ~200 --dcm-* entries as var(--ayr-*)
     * references, so re-declaring the palette above already re-skins
     * every Dutchie surface — the cart drawer, filter sidebar, age gate,
     * checkout and modals need nothing here.
     *
     * These three stay explicit: the base points primary and focus at
     * --ayr-blue, which for this brand is the same Dark Green as
     * --ayr-primary, so the values coincide today. Naming the semantic
     * token keeps that true if --ayr-blue is ever given a hue of its own. */
    --dcm-color-primary: var(--ayr-primary);
    --dcm-color-focus: var(--ayr-ring);
    --dcm-color-focus-shadow: color-mix(in oklch, var(--ayr-ring) 30%, transparent);

    /* ── Dutchie-native homepage surfaces, read from the Homepage frame ──
     * Category tiles: the frame draws them as 139x137 white cards with a
     * 20px radius (layer "Rectangle 1894" and its siblings). Dutchie exposes
     * one radius for every card it renders, so the specials tiles and any
     * other Dutchie-drawn card take the same 20px; fill and label color
     * already follow the palette through --dcm-categories-*.
     * Carousel arrows: the frame's "Chevron left" instances are bare dark
     * green chevrons with no button ground and no shadow. The arrow color
     * already follows --ayr-midnight-navy in the base; the hover wash stays. */
    --dcm-radius-cards: 1.25rem; /* 20px */
    --dcm-carousel-btn-bg: transparent;
    --dcm-carousel-btn-shadow: none;

    /* ── Dutchie's own UI: the admin customization ───────────────────
     * Dutchie declares these on :root from its admin settings, and the
     * Nevada stores inherit the parent brand's: navy #20355d on the View
     * All and View More links, the product page's Back link, option-tile
     * border and Add to cart button; #e86e41 on the product page's
     * discount text; Poppins on the Sort by label. Re-declared with the
     * brand's values. The extracted sheet ships this block as :root:root,
     * which outranks Dutchie's own :root rule even though Dutchie's style
     * tag comes later in the page. Hex, the form Dutchie writes them in.
     * The discount is text, and Orange is a surface color in this brand
     * (2.33:1 on white), so it takes Dark Green like the links. */
    --dct--customized-colors-buttonsLinks: #173D1E; /* Dark Green */
    --dct--customized-colors-discountTag: #173D1E; /* Dark Green */
    --dct--customized-colors-staffPickTag: #173D1E; /* Dark Green */
    --dct--customized-fonts-primary: 'DispensaryBody', system-ui, -apple-system, sans-serif;
    --dct--customized-fonts-secondary: 'DispensaryBody', system-ui, -apple-system, sans-serif;
  }

  /* ── Categories row ──────────────────────────────────────────────
   * The row of category CARDS on a store homepage is drawn by Dutchie. The
   * SDK registry has no slot for it and no token reaches it, so the card's
   * own markup is the handle: a stable class stem, and its category in its
   * href. Every rule below names the compact-card stem, because the test id
   * these carry is shared with Dutchie's chip row and is not a shape — see
   * CARD_TILE in ./store-front/category-icons.ts, which also says why that
   * chip row is deliberately left as Dutchie renders it.
   *
   * Two things are the card's identity rather than its size, so they hold
   * at every width: the 20px radius ("Rectangle 1894" 3122:2988) and the
   * label in Roboto Bold 16px ("Flower" 3122:2998). The icons are painted
   * at every width too, fitted to whatever image box the card has.
   *
   * Everything that is a measurement off a 1440 artboard — the 139x137
   * card, the 104px that puts the label's top edge below its top
   * (3122:2998 sits at y=730 in a tile at y=626), and each icon's own box —
   * waits for the breakpoint below. The file has no mobile artboard, so
   * under it the storefront keeps the card Dutchie renders today. */
  a[data-testid="category-list-link"][class*="compact-card__Anchor"] {
    border-radius: 20px;
  }
  a[data-testid="category-list-link"] [class*="compact-card__Label"] {
    font-family: var(--ayr-font-body);
    font-size: 16px;
    font-weight: 700;
    line-height: normal;
  }
  a[data-testid="category-list-link"][href$="/products/flower"] [class*="compact-card__ImageWrapper"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 110 110'%3E%3Cpath fill='%23173D1E' d='m63.97 79.73-3.2 4.82-3.77 6.4c-.67 1.13-1.26 2.35-2.12 3.33-.72.81-1.93.57-2.68.05-.7-.48-1.09-1.73-.66-2.7a67 67 0 0 1 4.82-8.72l-2.88.91-6.14.43c-1.83.13-5.18-.5-5.44-1.47-.07-.26.19-.87.42-1.05l3.55-2.86 3.2-3.75c-6.38.04-13.32-1.12-18.17-5.1-.47-.38-.83-1.2-.45-1.58 1.56-.08 3.15-.23 4.7-.54l5.12-1.02c2.26-.45 4.5-.93 6.47-2.07-7.19-1.01-11.65-1.97-16.75-6.89l-4.13-3.98c-2.3-2.2-4.3-4.5-5.68-7.39-.3-.63-.3-1.35.07-1.88a36 36 0 0 0 11.63 3.14c6-1.22 12.04.11 17.18 3.61-1.87-5.5-2.42-11.6-.76-17.1l2.71-8.98c.9-3 1.78-5.94 1.66-9.13-.05-1.37-1.47-4.49.12-3.67l3.62 1.87c1.24.64 1.99 2.2 2.8 3.33 1.76 2.44 3.53 4.88 4.13 7.9q.73 3.6.96 7.29c.18 3.2-1.69 6.99-.53 13 .29 1.48.97 2.74 1.6 4.2l1.2-5.17c1.42-6.08 6.49-9.52 9.3-13.64 1.23-1.79 2.02-3.87 3.02-5.97 1.73 2.11 1.82 4.75 2.68 7.07 1.33 3.59 1.76 7.08.8 10.86-1.3 5.22-4.05 10.17-7.12 14.82l4.21-1.12c.97-.26 1.8-.85 2.67-1.36a44 44 0 0 0 6.6-4.71c.08 2.4.25 4.66-.2 6.9-.64 3.1-2.05 6.2-4.15 8.57-1.47 1.65-3.48 2.76-5.3 3.94-1.83 1.18-3.87 1.82-5.89 2.58l1.54 2.14a12 12 0 0 1 2.46 6.27c.11 1.66-.83 4.63-1.54 5.2-.4.31-1.55.56-2.05.37l-4.32-1.66c-2.48-.95-4.15-3.03-5.31-5.49m-.53-17.6c.45-2.93-.1-5.41-1.25-8-2.46-5.53-3.5-7.5-3.21-14.1l.16-3.8c.23-5.29 1.18-8.7-3.1-13.93l-.88 3.97-2.18 7.54c-.98 3.36-1.5 6.5-1.1 10 .72 6.2 3.2 10.84 7.8 14.97l3.77 3.36m6.22-4.74a10 10 0 0 0 1.77-1.6c1.7-2.16 2.94-4.5 4.2-6.96 2.08-4.07 3.67-8.53 2.57-13.15l-2.45 2.63c-2 2.15-3.88 4.42-4.74 7.34a25 25 0 0 0-1.2 6.03zm-15.3 3.59c-1.4-1.65-2.96-2.55-4.62-3.67l-3.1-2.09a19.7 19.7 0 0 0-12.53-3.27l-4.4.3 7.25 5.57c2.63 1.08 5.27 2 8.11 2.27zM79.5 64.8c.76-.55 1.83-1.15 2.27-1.94l1.48-2.7c-2.49.88-4.64 1.88-7.11 2.21-2.24.3-4.13 1.02-5.79 2.54l-2.9 2.67c3.13 2.99 8.5-.18 12.05-2.78m-31.34 6 6.04-.73c1.19-.14 2.31-1.19 3.48-1.87-2.74-1.09-5.68-.75-8.35.36l-4.87 2.04c1.05.15 2.4.35 3.7.2m8.8 6.72 4.66-2.95-.8-3.24c-1.55 1.02-3.16 1.8-4.59 2.92a29 29 0 0 0-5.65 5.74c2.33-.1 4.35-1.18 6.38-2.47M72.8 81.9a7 7 0 0 0-1.3-3.9l-3.58-4.92c-1.05.77-1.04 2.05-.58 3.15l1.11 2.72c.7 1.71 2.7 2.59 4.35 2.95'/%3E%3Cpath fill='%23D2FF00' d='M62.23 53.17c-2.18-4.91-3.09-6.94-2.82-13.12l.17-3.8.11-2.04c.28-4.2.5-7.53-3.32-12.19l-.57-.7-1.06 4.83-2.19 7.54c-1.14 3.94-1.47 6.98-1.1 10.17.72 6.27 3.17 10.98 7.94 15.24l4.36 3.9.12-.8c.42-2.75.02-5.3-1.28-8.24zm-6.83 8.35-.7-.82a18 18 0 0 0-4-3.28l-3.82-2.56a20 20 0 0 0-12.8-3.34l-5.56.37 8.17 6.28.1.06a30 30 0 0 0 8.24 2.3zm16.38-5.46a41 41 0 0 0 4.24-7.03c1.84-3.61 3.8-8.4 2.6-13.45l-.18-.79-3.01 3.23c-1.86 2-3.92 4.38-4.84 7.5a25 25 0 0 0-1.22 6.16l-.17 6.57.71-.5c.88-.63 1.32-1.08 1.87-1.69m11.32 3.7q-.9.32-1.76.65c-1.77.66-3.44 1.3-5.27 1.54a10.5 10.5 0 0 0-6.02 2.65l-3.25 3 .33.32a4.8 4.8 0 0 0 3.44 1.32q3.6 0 9.16-4.07l.52-.36a6 6 0 0 0 1.88-1.72l2.03-3.7zM60.58 70.97q-.86.55-1.74 1.06c-.96.57-1.96 1.16-2.88 1.88a29 29 0 0 0-5.73 5.82l-.55.74.92-.04c2.32-.1 4.31-1.1 6.6-2.54l4.91-3.12-1.01-4.14zm-3.68-1.74q.5-.35 1-.65l.77-.45-.83-.33c-2.62-1.04-5.62-.92-8.68.36l-4.87 2.04-1.39.61 1.57.23c.79.11 1.73.25 2.7.25q.51 0 1.04-.06l6.04-.73c.95-.1 1.81-.7 2.66-1.27m14.94 8.53-3.83-5.27-.36.25c-1.07.79-1.34 2.16-.72 3.67l1.11 2.71c.9 2.18 3.56 2.98 4.66 3.22l.55.12-.02-.56a7.3 7.3 0 0 0-1.39-4.14'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  a[data-testid="category-list-link"][href$="/products/flower"] [class*="compact-card__ImageWrapper"] img {
    opacity: 0;
  }
  a[data-testid="category-list-link"][href$="/products/pre-rolls"] [class*="compact-card__ImageWrapper"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 106 106'%3E%3Cpath fill='%23173D1E' d='M24.45 84.38c-2.8 1.58-5.77.67-7.46-2.01-1.93-3.05-1.28-6.45 1.6-8.76L37.7 58.24c9.24-7.43 17.86-15.12 27.56-21.9 3.5-2.43 7.42-1.92 10.8.76 1.28-2.94-3.92-5.4-3.28-9.86 1.06-7.27 9.38-12.32 11.23-10.12 1.47 1.75-2.38 4.89.9 8.55 2.65 2.97 3.9 6.26 2.71 10.26-.96 3.22-3.65 5.9-7.57 7.06 1.52 4.36.37 8.52-3.16 10.74l-8.07 5.1-25.4 14.87zm57.52-55.6-2.8-5.12c-.96.68-2.07 2.31-2.2 3.34-.4 3.4 3.86 4.78 3.65 11.04a6.4 6.4 0 0 0 3.13-4c.38-2.06-.75-3.38-1.78-5.26m-5.62 17.15c-2.64-3.4-7.06 1.9-9.1-.06-.49-.46-.58-2.4-.07-2.86 1.4-1.28 3.37-2.06 5.4-2.78-.98-1.93-3.52-1.64-5.22-.38A352 352 0 0 0 48.8 54.27L36.7 64.55c-.65 3.18 1.58 5.95 4.75 5.84l21.07-12.54c4.97-2.96 16.44-8.57 13.84-11.92M36.02 73.29l-3.48-5.53-11.34 8.55c-.66.49-1 2.2-.95 2.96.04.75 1.56 2.27 2.23 1.88z'/%3E%3Cpath fill='white' d='M76.35 45.93c2.61 3.35-8.87 8.96-13.84 11.92L41.45 70.4c-3.17.11-5.4-2.66-4.75-5.84l12.1-10.28a352 352 0 0 1 18.55-14.43c1.7-1.26 4.25-1.54 5.23.4-2.03.7-4 1.49-5.4 2.77-.51.46-.42 2.4.06 2.86 2.04 1.96 6.47-3.34 9.11.06m-11.88 1c-.46.19-.84 1.9-.4 2.08.37.15 1.38.13 1.7-.08.4-.27.4-1.02.3-1.67-.04-.36-1.17-.52-1.6-.34M36.02 73.29l-13.54 7.86c-.67.39-2.2-1.13-2.23-1.88-.05-.75.29-2.47.95-2.96l11.34-8.55z'/%3E%3Cpath fill='%23D2FF00' d='M81.97 28.78c1.03 1.88 2.16 3.2 1.78 5.26a6.4 6.4 0 0 1-3.13 4c.21-6.26-4.05-7.64-3.64-11.04.12-1.03 1.23-2.66 2.19-3.34z'/%3E%3Cpath fill='%23173D1E' d='M64.47 46.92c.43-.18 1.56-.02 1.6.34.1.65.1 1.4-.3 1.67-.32.21-1.33.23-1.7.08-.44-.18-.06-1.9.4-2.09'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  a[data-testid="category-list-link"][href$="/products/pre-rolls"] [class*="compact-card__ImageWrapper"] img {
    opacity: 0;
  }
  a[data-testid="category-list-link"][href$="/products/vaporizers"] [class*="compact-card__ImageWrapper"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 126 126'%3E%3Cpath fill='%23173D1E' d='m97.79 91-13.6 14.35c-2.44 2.56-6.65 2.3-9.12-.28L62.53 92.02 50.48 80.4a16 16 0 0 1-5.64-11.25c-2.13-4.39-5.42-7.69-9.28-10.98 2.22-5.06 6.15-11.41 10.81-12.75l6.52 4.32a11 11 0 0 0 4.77 1.8c2.07-3.51 7.28-4.6 10.74-1.84 9.26 7.39 17.58 15.72 26.1 24.16C99.72 79 103.12 85.37 97.8 91M48.15 63.5l6.57-8.44-7.46-5.12c-3.16 2.38-5.44 5-6.9 8.59l4.83 4.75c.69.68 2.29 1.08 2.97.21m18.19-10.43a4.3 4.3 0 0 0-5.83.9L49.65 68.01c-1.6 2.07.57 5.28 1.87 6.42.57.5 3.3-3.35 6.33-7.35 3.84-5.07 8.08-10.63 8.08-10.63.65-.82 1.18-2.86.4-3.39M84.58 98.6l11.56-13.14c1.1-1.25-.4-4.16-1.38-5.2L82.18 67.02S74.22 58.08 71.5 56.5c-2.73-1.57-16.05 19.63-16.05 19.63-.94 1.2-.66 2.7.46 3.8L68.5 92.3l7.67 7.78c1.49 1.5 3.84 1.98 5.55.7zM40.27 40.45c-2.93.67-.91 5.1-2.5 6.08-.41.26-1.75.05-2.02-.37l-1.82-2.85a10.4 10.4 0 0 0-5.13-4.45 7.3 7.3 0 0 1-4.23-6.64c-.01-2.67 1.52-5.06 4.23-6.36.9-4.23 4.44-8.4 8.95-8.7 4.93-.35 8.85 3.57 10.38 7.95 2.4 1.64 3.67 3.85 3.43 6.75-.46 5.53-5.62 7.3-11.3 8.6m5.65-6.2c1.4-.83 2.49-2.82 1.68-4.45-.47-.96-2.18-1.61-3.06-1.48-3.05.45-3.47 4.1-5.53 2.92-.58-.34-1.05-1.8-.8-2.53.81-2.4 2.86-3.25 5.3-4.55a6 6 0 0 0-4.5-3.21c-1.82-.14-3.66.87-4.86 2.2-4.48 4.9 1.55 8.35-.58 9.7-.45.3-1.8.13-2.18-.3l-2.3-2.52c-.84.91-1.29 2.3-.93 3.33.31.92 1.4 1.69 2.3 2.24l5.28 3.22c2.95-2.96 6.25-2.27 10.17-4.57'/%3E%3Cpath fill='%23D2FF00' d='M45.92 34.25c-3.93 2.3-7.23 1.6-10.18 4.57l-5.27-3.23c-.9-.54-2-1.32-2.3-2.23-.36-1.04.08-2.42.92-3.33l2.3 2.53c.4.42 1.74.58 2.19.3 2.13-1.36-3.9-4.82.57-9.72 1.2-1.32 3.05-2.34 4.87-2.2a6 6 0 0 1 4.49 3.22c-2.43 1.3-4.48 2.16-5.3 4.55-.25.73.22 2.19.8 2.53 2.06 1.18 2.48-2.47 5.53-2.92.88-.13 2.59.52 3.06 1.47.81 1.64-.27 3.63-1.68 4.46'/%3E%3Cpath fill='%23173D1E' d='M93.72 82.15c-.64-.94-1.3-1.7-1.9-2.39-1.63-1.82-2.36-1.96-2.76-1.91a.9.9 0 0 0-.68.48c-.35.67-.02 1.36.24 1.67l2.43 2.97c-1.8 3.23-4.56 6.45-6.79 9.05-1.6 1.87-2.98 3.48-3.57 4.6-.3.57-.18 1.28.28 1.65.1.08.32.23.67.23.3 0 .68-.11 1.13-.49l9.84-11.96.05-.08q.14-.27.43-.64c.58-.79 1.46-1.98.64-3.18M71.88 59.13c-.75-.74-1.56-.82-2.17-.22-.7.7-.2 1.7.2 2.16l9.04 9.02.07.05c.29.18.74.38 1.17.38.33 0 .65-.11.88-.42.59-.77.09-1.78-.37-2.23zM64 53.88a3.4 3.4 0 0 0-2.7.5c-.35.28-.43 1.13-.3 1.54.1.37.36.44.47.45h.05l1.5-.28q2.13.2 2.48-.65l.06-.14-.06-.14q-.44-1-1.5-1.28m-11.73.54-3.93-2.74c-.34-.23-.94-.24-1.38-.13-.28.06-.65.2-.81.5-.27.48.13 1.72.55 2l4.2 2.78q.23.13.53.13c.42 0 .9-.16 1.16-.3.38-.23.45-.5.44-.67-.03-.35-.4-1.32-.76-1.57m34.24 23.32a1.36 1.36 0 1 0 0-2.71 1.36 1.36 0 0 0 0 2.71'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  a[data-testid="category-list-link"][href$="/products/vaporizers"] [class*="compact-card__ImageWrapper"] img {
    opacity: 0;
  }
  a[data-testid="category-list-link"][href$="/products/concentrates"] [class*="compact-card__ImageWrapper"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 100 100'%3E%3Cpath fill='%23173D1E' d='M82.65 61.15c.04 2-.22 4.23-1.86 5.48-8.23 6.24-18.19 9.35-28.55 9.96-8 1.34-15.71.16-23.27-2.55a27.5 27.5 0 0 1-12.4-8.99l-.81-21.64a5.4 5.4 0 0 1 2.66-5.03l.05-4.27c.06-4.02 1.28-6.7 4.67-8.3 9.71-4.53 20.04-6.8 30.74-5.63 2.78-.44 5.41-.05 8.17.48 5.88 1.13 11.4 2.77 16.27 6.42.66 1 1.41 3.26 1.43 4.48l.1 7.38 2.3 1.25.25 6.98zM64 28.13c3.06 1.74 4.26 4.65 3.88 8.45l5.5-2.45c1.24-.54 2.52-3.06 1.53-4.1-2.2-2.3-5.15-2.9-8.13-3.72-13.8-3.84-28.17-3.33-41.42 2.16-1.06.44-2.16 1.65-2.23 2.48-.06.73.64 2.44 1.35 2.8l5.7 2.86c.18-4.78 4.35-6.9 8.44-6.93 1.45-2.02 3.66-3.8 5.78-4.2 2.55-.46 5.3.13 6.87 2.24 3.54 4.73 6.97-2.89 12.73.4m-4.84 3.07 1.9 2.93c.41.64-.52 2.4-1.23 2.43-.6.03-1.77-.57-2.1-1.13-1.85-3.21-5.33-3.4-8.5-1.26-.62.42-1.93.36-2.4-.24-.35-.43-.3-1.7.1-2.1L48.75 30c-1.39-1.53-3.71-1.54-5.49-.27-3.59 2.55-.83 5.71-2.02 6.92-.34.35-1.87.29-2.15-.12-.57-.79-1.08-2.05-1.6-3.32-1.2.07-3.04 1.07-3.64 2.37-.57 1.24.37 2.53 1.6 2.8a61.6 61.6 0 0 0 28.24-.2c.56-1.42.84-3.17.56-4.5-.52-2.55-3.07-3.3-5.1-2.47m16.24 6.98c-6.3 2.27-11.86 4.54-18.15 5.19-8.03.82-15.86 1-23.4-1.5l-10.51-3.5c-.85 1.2-1.12 4.06.4 5.01 7.99 5.01 17.03 6.65 26.42 6.5 9.04-.17 17.67-2.1 25.16-7.2.42-1.31.36-3.41.08-4.5M60.57 62.57a42 42 0 0 0 16.78-7.85l-.2-8.36a47.6 47.6 0 0 1-24.2 7.6l-8.9-.2a43 43 0 0 1-18-4.4l.2 7.66c0 .46-.86 1.47-1.3 1.56s-1.52-.78-1.56-1.24l-.89-9.3c-.05-.52-.91-1.23-1.56-1.35l-.15 15.64c-.01 1.32 1.45 3.02 2.24 2.6l.82-2.7c.13-.42 1.82-.42 2 0 .46 1.12.5 3.52.42 5.07 7.83 4.18 16.44 5.31 25.27 5.02 8.1-.26 15.7-2.18 22.51-6.34 2.56-1.56 3.9-3.68 3.04-6.7-5.4 3.55-18.43 9.3-18.23 5.1.04-.69.8-1.6 1.7-1.82'/%3E%3Cpath fill='white' d='M60.57 62.57c-.92.2-1.68 1.12-1.7 1.82-.21 4.2 12.81-1.55 18.22-5.1.87 3-.48 5.13-3.04 6.7-6.81 4.15-14.42 6.07-22.5 6.33-8.84.3-17.45-.84-25.28-5.01.09-1.56.03-3.95-.43-5.08-.17-.42-1.86-.42-1.99 0l-.82 2.7c-.79.42-2.25-1.28-2.24-2.6l.15-15.64c.65.12 1.5.84 1.56 1.36l.89 9.3c.04.45 1.12 1.32 1.56 1.23s1.3-1.1 1.3-1.55l-.2-7.67a43 43 0 0 0 18 4.4l8.9.2a47.6 47.6 0 0 0 24.2-7.6l.2 8.36a42 42 0 0 1-16.78 7.85m-6.45 1.18a2.17 2.17 0 0 0-.98 2.77c.3.65 1.77 1.08 2.45.57.64-.47 1.17-1.78.9-2.47-.23-.62-1.8-1.19-2.37-.88m-5.74.43c-.88.58-1.18 2.12-.73 2.77.42.61 2.05.78 2.55.35.52-.43.89-1.67.72-2.31-.2-.75-1.77-1.31-2.54-.8'/%3E%3Cpath fill='white' d='M75.4 38.18a10 10 0 0 1-.08 4.5c-7.49 5.1-16.12 7.04-25.16 7.2-9.4.15-18.43-1.49-26.42-6.5-1.52-.95-1.25-3.8-.4-5l10.5 3.49c7.55 2.5 15.38 2.32 23.41 1.5 6.29-.65 11.85-2.92 18.15-5.19M45.8 47c0-.52-.83-1.47-1.45-1.54a52 52 0 0 1-9.97-2.2l-7.15-2.36c-.49-.16-1.54.16-1.81.59s.13 1.97.65 2.15l6.9 2.37c4.9 1.68 12.81 3.6 12.82 1M64 28.13c-5.76-3.3-9.19 4.32-12.73-.41-1.57-2.1-4.32-2.7-6.87-2.23-2.12.39-4.33 2.17-5.78 4.2-4.1.03-8.26 2.14-8.43 6.92l-5.7-2.86c-.71-.36-1.41-2.07-1.36-2.8.07-.83 1.17-2.04 2.24-2.48 13.24-5.49 27.61-6 41.41-2.16 2.98.82 5.94 1.42 8.13 3.71 1 1.05-.28 3.57-1.52 4.11l-5.5 2.45c.38-3.8-.83-6.7-3.88-8.45'/%3E%3Cpath fill='%23D2FF00' d='M59.16 31.2c2.02-.82 4.57-.08 5.1 2.47a8.6 8.6 0 0 1-.57 4.5 61.6 61.6 0 0 1-28.24.2c-1.23-.27-2.17-1.56-1.6-2.8.6-1.3 2.44-2.3 3.63-2.37.53 1.27 1.05 2.53 1.6 3.32.3.4 1.82.47 2.16.12 1.2-1.21-1.57-4.37 2.02-6.92 1.78-1.27 4.1-1.26 5.49.27l-1.82 1.85c-.4.4-.45 1.66-.1 2.1.47.6 1.78.65 2.4.23 3.17-2.14 6.65-1.95 8.5 1.26.33.56 1.5 1.15 2.1 1.13.71-.02 1.65-1.8 1.23-2.43z'/%3E%3Cpath fill='%23173D1E' d='M54.12 63.75c.58-.32 2.14.25 2.37.87.27.69-.26 2-.9 2.47-.68.51-2.15.08-2.45-.57a2.17 2.17 0 0 1 .98-2.77m-5.74.43c.77-.5 2.34.06 2.54.8.17.65-.2 1.89-.72 2.32-.5.43-2.12.26-2.55-.35-.45-.65-.15-2.19.74-2.77M45.8 47c-.02 2.6-7.92.68-12.83-1l-6.9-2.37c-.52-.18-.92-1.73-.65-2.16.27-.42 1.32-.74 1.81-.58l7.15 2.35a52 52 0 0 0 9.97 2.2c.62.08 1.45 1.03 1.44 1.55'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  a[data-testid="category-list-link"][href$="/products/concentrates"] [class*="compact-card__ImageWrapper"] img {
    opacity: 0;
  }
  a[data-testid="category-list-link"][href$="/products/edibles"] [class*="compact-card__ImageWrapper"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 91 91'%3E%3Cpath fill='white' d='m71.84 42.01-3.56.36c-3.02 2.33-6.8 2.39-10.07.41-2.58 1.24-5.15.46-6.56-1.95-.85-1.24-1.9-1.84-3.19-2.6-3.14-1.84-3.55-6.13-1.73-9.05-3.06-3.7-3.27-8.27-.59-11.9-3.62-.96-6.68-.2-9.84.64-7.09 1.85-12.4 6.78-15.2 13.52-2.4 5.8-3.5 11.73-2.5 18.12 1.44 9.18 11.19 18.8 20.23 20.3 10.73 1.78 22-.74 28.34-9.82 4.8-6.88 6.67-9.63 4.67-18.02'/%3E%3Cpath fill='%23173D1E' d='m66.63 37.53 4.96-.32 2.03-.4c1.7-.33 4.58 10.14 2.8 15.68-1.23 3.9-3.82 7.5-6.22 10.75-5.07 6.85-12.61 10.6-21 11.23-5.42.41-10.6.54-15.79-1.67-8.56-3.67-16.05-10.9-18.51-20.17-3.12-11.8 1.2-26.85 11.32-34.56 10.39-7.9 27.32-6.48 23.87.32-1.25 2.46-1 4.5.87 6.76 1.39 1.68-1.06 5.08-.09 7 .3.56 1.55 1 2.44 1.43.94.46 1.18 2.65 1.33 4.1 2.7.99 3.14-2 5.97.8 1.58 1.57 4.49.95 6.02-.95m5.2 4.48-3.55.36c-3.02 2.33-6.8 2.39-10.07.41-2.58 1.24-5.15.46-6.56-1.95-.85-1.24-1.9-1.84-3.19-2.6-3.14-1.84-3.55-6.13-1.73-9.05-3.06-3.7-3.27-8.27-.59-11.9-3.62-.96-6.68-.2-9.84.64-7.09 1.85-12.4 6.78-15.2 13.52-2.4 5.8-3.5 11.73-2.5 18.12 1.44 9.18 11.19 18.8 20.23 20.3 10.73 1.78 22-.74 28.34-9.82 4.8-6.88 6.67-9.63 4.67-18.02'/%3E%3Cpath fill='%23D2FF00' d='M42.05 64.44c-1.59 1.53-4.23.98-5.94.1-1.5-.78-3.04-2.8-2.74-4.94.47-3.22 4.45-4.5 7.28-3.12 2.65 1.28 4.02 5.43 1.4 7.96'/%3E%3Cpath fill='%23173D1E' d='M39.43 67.11a9 9 0 0 1-4.1-1.05c-2.09-1.08-4.07-3.8-3.65-6.7a5.7 5.7 0 0 1 3.1-4.31 7.4 7.4 0 0 1 6.61-.12 7 7 0 0 1 3.7 5.14 6.3 6.3 0 0 1-1.85 5.6 5.3 5.3 0 0 1-3.81 1.44m-1.23-9.47q-.98 0-1.82.44c-.52.28-1.17.81-1.3 1.77-.2 1.34.93 2.7 1.83 3.16 1.08.57 3.03 1.08 3.95.2.9-.87.95-1.9.84-2.6a3.6 3.6 0 0 0-1.8-2.59 4 4 0 0 0-1.7-.37'/%3E%3Cpath fill='%23D2FF00' d='M35.4 33.24c-2.3.98-4 .12-5.61-1.31-1.48-1.31-2.46-3.77-1-5.44 1.97-2.24 5.1-1.55 7.1.16 1.21 1.04 2.01 1.9 1.96 3.5-.05 1.2-1.1 2.5-2.45 3.09'/%3E%3Cpath fill='%23173D1E' d='M33.5 35.38c-2.1 0-3.72-1.16-4.85-2.17-2.22-1.97-3.26-5.44-1.15-7.85 2.66-3.03 6.88-2.27 9.5-.01 1.35 1.15 2.65 2.48 2.56 4.86-.06 1.86-1.5 3.75-3.49 4.6a7 7 0 0 1-2.57.57m-1.56-8.6a2.4 2.4 0 0 0-1.86.84c-.73.84.02 2.3.85 3.03 1.48 1.31 2.47 1.58 3.79 1.01.85-.36 1.4-1.16 1.41-1.57.03-.77-.21-1.15-1.36-2.14a4.7 4.7 0 0 0-2.83-1.16'/%3E%3Cpath fill='%23D2FF00' d='M45.9 42.53c.89 2.38-.89 4.93-3.05 5.43a4.6 4.6 0 0 1-5.17-2.31c-.84-1.52-1.2-3.97.5-5.41 2.34-1.98 6.55-.82 7.72 2.29'/%3E%3Cpath fill='%23173D1E' d='M41.76 49.8a6.4 6.4 0 0 1-5.58-3.32c-1.23-2.23-1.48-5.54.9-7.55a6.3 6.3 0 0 1 5.69-1.15 6.9 6.9 0 0 1 4.73 4.15c.57 1.5.44 3.15-.35 4.63a6.1 6.1 0 0 1-5.39 3.24M41 40.98c-.66 0-1.26.2-1.7.57-.96.8-.59 2.4-.1 3.27a2.9 2.9 0 0 0 3.27 1.47c.65-.15 1.3-.69 1.66-1.36.23-.42.44-1.07.17-1.8a3.4 3.4 0 0 0-2.39-2.03 4 4 0 0 0-.9-.12'/%3E%3Cpath fill='%23D2FF00' d='M30.54 48.17c-.95 1.8-3.17 1.85-4.8 1.26-1.44-.52-2.6-2.2-2.73-4.1-.13-1.82.58-3.74 2.62-4.07 1.4-.22 3.25.83 4.02 1.72 1.17 1.34 1.77 3.52.89 5.2'/%3E%3Cpath fill='%23173D1E' d='M27.61 51.49c-.83 0-1.67-.16-2.44-.44-2.11-.76-3.7-3.07-3.87-5.61-.21-3.1 1.42-5.45 4.06-5.87 2.19-.35 4.58 1.12 5.59 2.28 1.46 1.68 2.43 4.63 1.1 7.13a4.8 4.8 0 0 1-4.44 2.5m-1.56-8.54h-.15c-1.19.2-1.22 1.64-1.18 2.26.09 1.35.9 2.35 1.6 2.6.72.27 2.2.5 2.7-.44.54-1.01.06-2.44-.66-3.27a4 4 0 0 0-2.31-1.15'/%3E%3Cpath fill='%23D2FF00' d='M57.68 59.82c-.55 1.9-3.73 2.44-5.25 1.92-2.01-.7-2.5-3.03-2.08-4.94.33-1.54 2.06-3.76 4.3-3.1 2.02.61 3.68 3.85 3.03 6.12'/%3E%3Cpath fill='%23173D1E' d='M53.75 63.65a6 6 0 0 1-1.88-.3c-3-1.03-3.76-4.3-3.2-6.92a6.3 6.3 0 0 1 2.82-3.9 4.5 4.5 0 0 1 3.64-.46c2.94.87 5.1 5.1 4.2 8.23a4.2 4.2 0 0 1-2.25 2.57c-.98.5-2.2.78-3.33.78m.08-8.35q-.25-.01-.6.19a3 3 0 0 0-1.2 1.67c-.18.84-.22 2.55.96 2.96.49.16 1.68.13 2.51-.3q.45-.23.53-.47c.41-1.44-.8-3.67-1.88-4q-.14-.04-.32-.05'/%3E%3Cpath fill='%23D2FF00' d='M65.6 54.59c-1.54.25-2.8-1.41-3.2-2.47-.51-1.36-.46-3.54.94-4.3 1.98-1.08 4.03.12 4.73 1.85.73 1.85.21 4.49-2.46 4.92'/%3E%3Cpath fill='%23173D1E' d='M65.29 56.33c-2.28 0-3.94-2.13-4.5-3.6-.84-2.23-.42-5.24 1.73-6.42 1.27-.68 2.7-.8 4.02-.32a5.4 5.4 0 0 1 3.12 3.05c.64 1.6.55 3.47-.25 4.87a4.8 4.8 0 0 1-4.12 2.42m-.4-7.2q-.36 0-.73.2c-.34.18-.48 1.32-.16 2.19.26.68.98 1.43 1.33 1.37.7-.11.96-.44 1.1-.67.28-.5.3-1.27.04-1.91-.2-.5-.62-.93-1.1-1.1a1 1 0 0 0-.47-.08'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  a[data-testid="category-list-link"][href$="/products/edibles"] [class*="compact-card__ImageWrapper"] img {
    opacity: 0;
  }
  a[data-testid="category-list-link"][href$="/products/tinctures"] [class*="compact-card__ImageWrapper"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 106 106'%3E%3Cpath fill='%23173D1E' d='M66.17 89.95a86 86 0 0 1-26.91.03c-4.27-.64-6.38-3.95-6.04-7.97.79-9.26 1.79-18.19 3.4-27.27.28-1.61 1.31-3.8 2.4-4.67 2.35-1.9 3.82-4.4 2.76-7.22L37.66 42c-1.5-1.43-1.21-3.53-.94-5.41 1.2-8.12 8.83-5.73 8.93-8.03l.44-9.82c.13-3.04 3.01-6.7 6.18-6.38 3.61.35 5.85 4.46 5.93 7.67l.19 7.94c.07 3.2 4.46.9 7.02 4.08 1.94 2.43 2.98 5.8 1.9 8.92-.5 1.5-3.3 1.53-4.75 1.7-1.32 3 .65 5.65 3.05 7.56 1.05.83 2.12 3.21 2.34 4.73l3.99 27.05c.56 3.8-1.42 7.18-5.77 7.93M54.51 27.6c.36-4.87.43-11.68-2.35-11.8-3.05-.13-3.02 7.03-2.52 11.99.1 1.09 1.58 2.05 2.54 2.05 1.04 0 2.24-1.03 2.33-2.25m-7.48 5.92-2.37 3.34a4 4 0 0 1-.87.78c-.15.1-1.04-.54-.97-.71l1.12-3.26c-.86-.34-2.6.4-3.05 1.66a7 7 0 0 0-.34 3.88l23.13-.07c.72-1.9-.32-5.4-2.42-5.43zm9.75 13.42c1.53-.26 1.93-3.34.9-4.11l-11.39-.01c-.77 1.6-.09 4.15 1.74 4.32 2.8.25 5.88.3 8.75-.2M46.44 56.3l-.03-5.48c-3.65-.29-5.8 2.39-5.87 5.66zm7.72-.47L54 50.94l-3.85.13.13 5.32c1.26-.06 2.8-.26 3.88-.57m9.63.64c.1-1.34-.5-3.37-1.44-4.22-1.31-1.2-2.86-1.45-4.51-1.42L58 56.3zM52.33 74.15c1.01-1.66 1.55-3.08 1.59-4.47l.27-9.81-4.02.3.52 10.35c.06 1.1.9 2.6 1.64 3.63m5.9-13.96-.32 10.5a12 12 0 0 1-3.2 7.43c-.92 1-3.45 1.22-4.43.23-1.77-1.76-3.43-4.48-3.55-7l-.52-11.17-6.35.39-1.82 21.93c-.15 1.75.74 3.46 2.76 3.7 7.71.92 15.58.96 23.3.07 2.04-.24 3.02-1.97 2.83-3.78L64.66 60.5a30 30 0 0 0-6.43-.32'/%3E%3Cpath fill='%23D2FF00' d='M58.23 60.19a29 29 0 0 1 6.43.32l2.27 21.98c.19 1.81-.79 3.54-2.83 3.78-7.72.9-15.59.85-23.3-.07-2.02-.24-2.9-1.95-2.76-3.7l1.82-21.93 6.35-.4.53 11.19c.11 2.51 1.77 5.23 3.54 7 .99.98 3.5.77 4.43-.24a12 12 0 0 0 3.2-7.44zm4.7 23.44c.7-.34.81-2.17.26-2.78-.48-.53-2-.84-2.8-.62-.69.18-1.3 1.55-1.04 2.37.42 1.32 1.97 1.81 3.59 1.03'/%3E%3Cpath fill='white' d='m47.03 33.53 14.23.2c2.1.02 3.14 3.52 2.42 5.42l-23.13.07a7 7 0 0 1 .34-3.88c.45-1.25 2.19-2 3.05-1.66l-1.12 3.26c-.06.17.82.81.97.71.22-.15.68-.51.87-.78zm7.47-5.93a2.56 2.56 0 0 1-2.32 2.26c-.96 0-2.44-.97-2.54-2.06-.5-4.96-.53-12.12 2.52-11.99 2.78.12 2.71 6.93 2.35 11.8m2.27 19.34c-2.87.5-5.95.45-8.75.2-1.83-.17-2.51-2.72-1.74-4.32h11.39c1.02.78.63 3.86-.9 4.12'/%3E%3Cpath fill='%23D2FF00' d='M52.33 74.15c-.75-1.04-1.58-2.52-1.64-3.63l-.52-10.34 4.02-.31-.27 9.81c-.04 1.4-.58 2.8-1.6 4.47'/%3E%3Cpath fill='white' d='M63.8 56.46 58 56.3l-.16-5.47c1.65-.03 3.2.23 4.5 1.42.94.85 1.56 2.88 1.45 4.22m-17.35-.18-5.9.18c.06-3.27 2.22-5.95 5.87-5.66zm7.72-.47c-1.07.31-2.62.51-3.88.57l-.13-5.32 3.85-.13z'/%3E%3Cpath fill='%23173D1E' d='M62.94 83.63c-1.62.78-3.17.3-3.6-1.03-.26-.82.36-2.19 1.04-2.37.81-.22 2.33.09 2.8.62.57.61.46 2.44-.24 2.78'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  a[data-testid="category-list-link"][href$="/products/tinctures"] [class*="compact-card__ImageWrapper"] img {
    opacity: 0;
  }
  a[data-testid="category-list-link"][href$="/products/topicals"] [class*="compact-card__ImageWrapper"] {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 104 104'%3E%3Cpath fill='%23173D1E' d='m70.97 64.88-2.4-6.17c1.4-1.6 2.58-3.75 1.83-5.7l-7.72-20-6-14.13c-1.13-2.66-2.03-7.96-4.63-7.02a152 152 0 0 0-23.82 11.5 6.4 6.4 0 0 0-2 2.34c-.09 1.43 1.44 3.01 2.42 3.97l6.7 6.54L45.07 48l10.56 13.98c1.46 1.94 3.86 2 6.1 1.14l3.05 5.01c1.28 2.1 6.63-2.09 6.18-3.24m-19.7-48.84s.85 2.2-.47 1.6l-.96-.91zm-5.49 2.66 1.43-.67c.63.67.46 1.32-.26 1.23-.47-.15-1.36-.46-1.17-.56m-2.44.81c.01.42-.16 1.35-.45 1.56-.36.27-1.17-.02-1.93-.42zm-6.16 3.06 1.5-.46c.3-.1-.17 1.3-.46 1.25-.52-.08-1.33-.7-1.04-.79m-4.25 2.73 1.78-1.43.26 1.16c.07.35-.76.44-2.04.27m24.75 33.82-4.42-5.68-9.87-13.81-9-9.88 18.44-9.52 6.58 14.3 7.53 18.83zm7.44-1 .03.06.05-.03.02.17c.51.97 2.8 5.47 1.92 6.2-.98.82-4.56-5.02-4.56-5.02zm1.99 11.4c-1.26 1.19.4 3.92-1.76 8.5-2.12 4.5-.87 9.64 3 10.72 1.85.51 3.78.02 5.23-1.33 7.12-6.6-3.95-20.25-6.46-17.89m2.73 15.98c-2.05.02-2.69-2.71-2.18-4.21l2.12-6.2c3.75 4.28 3.6 10.38.06 10.41'/%3E%3Cpath fill='white' d='m59.41 34.53-6.58-14.3-18.43 9.52 8.99 9.88 9.87 13.81 4.42 5.68 9.26-5.77zm.28 12.39-4.28-9.75-5.6-12.72c-.27-.6 1.17-2.04 1.65-1.77 0 0 1.26-.51 2.03 1.16s9.32 22 9.32 22c.22.92-.63 1.68-1.02 2-.45.36-1.83-.29-2.1-.92m2.13 3.39c-.35-.44-.13-1.84.4-2.18.42-.27 1.76-.08 1.94.35.2.52.12 1.65-.26 2.06-.39.41-1.73.2-2.08-.23m3.4 8.01-.07-.14-2.57 1.32 3.04 2.43z'/%3E%3Cpath fill='white' d='M67.14 64.52c.88-.73-1.4-5.23-1.92-6.2l.4 3.61-3.04-2.43s3.57 5.84 4.56 5.02'/%3E%3Cpath fill='white' d='m65.12 58.13-2.54 1.37 2.57-1.32zM42.9 21.07c.29-.2.46-1.14.44-1.56l-2.38 1.14c.76.4 1.57.69 1.93.42m-7.92 3.96-.26-1.16-1.78 1.43c1.28.17 2.11.08 2.04-.27m3.25-1.67c.29.04.75-1.34.46-1.25l-1.5.46c-.3.1.52.7 1.03.79m8.74-4.1c.72.09.88-.55.26-1.23l-1.43.68c-.2.09.7.4 1.17.55m4.31-3.22-1.42.69.96.9c1.32.62.46-1.59.46-1.59'/%3E%3Cpath fill='%23D2FF00' d='M67.65 81.3c-.5 1.5.13 4.23 2.18 4.21 3.54-.03 3.69-6.13-.06-10.4z'/%3E%3Cpath fill='%23173D1E' d='m62.81 45.84-9.32-22-2.03-1.16c-.48-.27-1.92 1.17-1.65 1.77l5.6 12.72 4.28 9.75c.27.63 1.66 1.28 2.1.92a5 5 0 0 0 1.02-2'/%3E%3Cpath fill='%23173D1E' d='m53.49 23.84 9.32 22s-8.55-20.33-9.32-22m-2.03-1.16 2.03 1.16c-.77-1.67-2.03-1.16-2.03-1.16M61.8 47.84c.38-.32 1.23-1.08 1.01-2-.2.72-.63 1.68-1.02 2m2.37.64c-.18-.43-1.52-.62-1.94-.35-.53.34-.75 1.74-.4 2.18s1.7.64 2.08.23c.38-.4.47-1.54.26-2.06'/%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
  }
  a[data-testid="category-list-link"][href$="/products/topicals"] [class*="compact-card__ImageWrapper"] img {
    opacity: 0;
  }

  /* The frame's own geometry, from the width where the storefront stops
     scaling the card down. Above this the card is the frame's 139x137 with
     the label 104px below its top; below it Dutchie's card, image box and
     label position are left exactly as they render. */
  @media (min-width: 48rem) {
    a[data-testid="category-list-link"][class*="compact-card__Anchor"] {
      height: 137px;
      padding: 0;
      width: 139px;
    }
    a[data-testid="category-list-link"] [class*="compact-card__ImageWrapper"] {
      height: 104px;
      margin: 0;
      /* The frame's vape icon is 126px in a 139px tile and overhangs its
         tile's top edge; Dutchie's wrapper clips, so let it show. */
      overflow: visible;
      width: 100%;
    }
    a[data-testid="category-list-link"] [class*="compact-card__Label"] {
      margin: 0;
    }
    a[data-testid="category-list-link"][href$="/products/flower"] [class*="compact-card__ImageWrapper"] {
      background-size: 110px 110px;
    }
    a[data-testid="category-list-link"][href$="/products/pre-rolls"] [class*="compact-card__ImageWrapper"] {
      background-size: 106px 106px;
    }
    a[data-testid="category-list-link"][href$="/products/vaporizers"] [class*="compact-card__ImageWrapper"] {
      background-size: 126px 126px;
    }
    a[data-testid="category-list-link"][href$="/products/concentrates"] [class*="compact-card__ImageWrapper"] {
      background-size: 100px 100px;
    }
    a[data-testid="category-list-link"][href$="/products/edibles"] [class*="compact-card__ImageWrapper"] {
      background-size: 91px 91px;
    }
    a[data-testid="category-list-link"][href$="/products/tinctures"] [class*="compact-card__ImageWrapper"] {
      background-size: 106px 106px;
    }
    a[data-testid="category-list-link"][href$="/products/topicals"] [class*="compact-card__ImageWrapper"] {
      background-size: 104px 104px;
    }
  }

  /* ── Dutchie's own UI that ignores the admin customization ────────
   * Three pieces take their color or font from Dutchie's JavaScript theme,
   * so no variable reaches them:
   *   the "Shop All Products" link ..... Dutchie's default link blue #0B99E6
   *   the category page's range sliders  the parent brand's navy on the
   *                                      track, and a light blue focus halo
   *   the product page's quantity select Poppins
   * Each rule targets the class or test id Dutchie ships, with one more
   * selector than Dutchie's own rule, because the static copy of this sheet
   * loads before Dutchie's styles. The theme injects the same sheet again
   * after them at runtime, where equal specificity already wins, so no rule
   * here may override a state Dutchie styles at the same specificity: the
   * slider color skips the disabled state, and the track follows the
   * slider's color instead of naming one. If Dutchie renames a class, its
   * rule stops matching and the default returns; nothing else changes. */
  a[data-testid="shop-all-products-link"] {
    color: var(--ayr-primary);
  }
  .MuiSlider-root.MuiSlider-colorPrimary:not(.Mui-disabled) {
    color: var(--ayr-primary);
  }
  .MuiSlider-root.MuiSlider-colorPrimary .MuiSlider-track {
    background: currentColor;
  }
  /* Hover and drag feedback: a soft halo. */
  .MuiSlider-root.MuiSlider-colorPrimary .MuiSlider-thumb:hover,
  .MuiSlider-root.MuiSlider-colorPrimary .MuiSlider-thumb:focus,
  .MuiSlider-root.MuiSlider-colorPrimary .MuiSlider-thumb:active {
    box-shadow: 0 0 0 4px var(--dcm-color-focus-shadow);
  }
  /* Keyboard focus has to reach 3:1 against the page, and the thumb paints
     nothing else: Dutchie's handle image is a relative URL the proxied
     storefront does not serve. A white gap, then a solid Dark Green ring,
     10.89:1 on Page Gray. */
  .MuiSlider-root.MuiSlider-colorPrimary .MuiSlider-thumb.Mui-focusVisible {
    box-shadow: 0 0 0 2px var(--ayr-background), 0 0 0 4px var(--dcm-color-focus);
  }
  /* Scoped to the quantity select, the only MUI input measured on these
     pages; other MUI fields keep the font their labels are sized for. */
  .MuiInputBase-root[class*="quantity-select__StyledSelect"] {
    font-family: var(--ayr-font-body);
  }

  /* ── The interstitial promo card's primary button ────────────────
   * The AYR template paints its panel with --ayr-midnight-navy and this
   * button with --ayr-leafy-green, which this theme points at the same Dark
   * Green, so the button's fill equalled its panel. High Viz pill instead,
   * Dark Green text, 10.47:1; the variant keeps its radius and the hover is
   * the SHOP pill's opacity step. Both test ids are named because the
   * button is a styled-component whose own rule is one class injected at
   * runtime — one-for-one this would win or lose on injection order. See
   * the file docblock for why the token itself is not re-pointed. */
  [data-testid="ayr-interstitial-promo-card"]
    [data-testid="ayr-interstitial-promo-primary-cta"] {
    background: var(--ayr-lime-green);
    color: var(--ayr-midnight-navy);
    transition: opacity 0.15s ease;
  }
  [data-testid="ayr-interstitial-promo-card"]
    [data-testid="ayr-interstitial-promo-primary-cta"]:hover:not(:disabled) {
    background: var(--ayr-lime-green);
    opacity: 0.9;
  }