/** Shopify CDN: Minification failed

Line 1178:10 Expected identifier but found whitespace
Line 1178:11 Unexpected "30px"

**/
.subscription-upsell-modal__highlight--savings {
    background-color: rgba(19, 154, 105, 0.1);
    color: #139a69;
    font-weight: 600;
}
ol,
ul {
	padding-left: 2rem;
}

ol,
ul,
dl {
	margin-top: 0;
	margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol {
	margin-bottom: 0;
}

dt {
	font-weight: 700;
}

dd {
	margin-bottom: .5rem;
	margin-left: 0;
}

blockquote {
	margin: 0 0 1rem;
}

b,
strong {
	font-weight: 700;
}

sub,
sup {
	position: relative;
	font-size: 0.75em;
	line-height: 0;
	vertical-align: baseline;
}

sub {
	bottom: -.25em;
}

sup {
	top: -.5em;
}

a {
	cursor: pointer;
    text-decoration: none;
    color: var(--bs-link-color);
    transition: color 0.15s ease-in-out;
}

a:hover {
	color: var(--bs-link-hover-color);
}

a:not([href]):not([class]),
a:not([href]):not([class]):hover {
	color: inherit;
	text-decoration: none;
}

figure {
	margin: 0 0 1rem;
}

img,
svg {
	vertical-align: middle;
}

label {
	display: inline-block;
}

button {
	border-radius: 0;
}

button:focus:not(:focus-visible) {
	outline: 0;
}

input,
button,
select,
optgroup,
textarea {
	margin: 0;
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

button,
select {
	text-transform: none;
}

[role="button"] {
	cursor: pointer;
}

select {
	word-wrap: normal;
}

select:disabled {
	opacity: 1;
}

[list]:not([type="date"]):not([type="datetime-local"]):not([type="month"]):not([type="week"]):not([type="time"])::-webkit-calendar-picker-indicator {
	display: none !important;
}

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

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
}

button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
	cursor: pointer;
}

::-moz-focus-inner {
	padding: 0;
	border-style: none;
}

textarea {
	resize: none;
}

fieldset {
	min-width: 0;
	padding: 0;
	margin: 0;
	border: 0;
}

::-webkit-datetime-edit-fields-wrapper,
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-minute,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-year-field {
	padding: 0;
}

::-webkit-inner-spin-button {
	height: auto;
}

[type="search"] {
	outline-offset: -2px;
	-webkit-appearance: textfield;
}

::-webkit-search-decoration {
	-webkit-appearance: none;
}

::-webkit-color-swatch-wrapper {
	padding: 0;
}

::file-selector-button {
	font: inherit;
	-webkit-appearance: button;
}

::-webkit-file-upload-button {
    font: inherit;
    -webkit-appearance: button;
}

output {
	display: inline-block;
}

iframe {
	border: 0;
    display: block;
}

[hidden] {
	display: none !important;
}

.list-unstyled {
	padding-left: 0;
	list-style: none;
}

.img-fluid {
    max-width: 100%;
    width: 100%;
    height: auto;
}

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

.container,
.container-fluid,
.container-xxl {
    width: 100%;
    padding-right: var(--bs-container-padding);
    padding-left: var(--bs-container-padding);
    margin-right: auto;
    margin-left: auto;
}

.container {
    max-width: var(--bs-container-width);
}
@media (max-width: 767px){
    .container-px-0{
        padding-inline: 0 !important;
    }
}


/*---------------------------------------------------------------------------------*/

/*  typography.css
/*---------------------------------------------------------------------------------*/

.font-family-base {font-family: var(--bs-body-font-family) !important;}

.font-family-heading {font-family: var(--bs-font-family-heading) !important;}
.font-family-secondary {font-family: var(--bs-font-family-secondary) !important;}
.font-family-body-secondary {font-family: var(--bs-font-family-body-secondary) !important;}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-family: var(--bs-font-family-heading);
    font-weight: var(--bs-headings-font-weight);
    line-height: var(--bs-line-height-heading);
    font-style: var(--bs-heading-style);
    /* color: var(--bs-heading-color); */
}

h1, .h1 {font-size: var(--bs-h1-font-size-sm); }
h2, .h2 {font-size: var(--bs-h2-font-size-sm); }
h3, .h3 {font-size: var(--bs-h3-font-size-sm); }
h4, .h4 {font-size: var(--bs-h4-font-size-sm); }
h5, .h5 {font-size: var(--bs-h5-font-size-sm); }
h6, .h6 {font-size: var(--bs-h6-font-size-sm); }
.fs-display {font-size: var(--bs-display-font-size-sm);}

@media (min-width: 768px) {
    h1, .h1 {font-size: var(--bs-h1-font-size-md); }
    h2, .h2 {font-size: var(--bs-h2-font-size-md); }
    h3, .h3 {font-size: var(--bs-h3-font-size-md); }
    h4, .h4 {font-size: var(--bs-h4-font-size-md); }
    h5, .h5 {font-size: var(--bs-h5-font-size-md); }
    h6, .h6 {font-size: var(--bs-h6-font-size-md); }
    .fs-display {font-size: var(--bs-display-font-size-md);}
}

@media (min-width: 1200px) {
    h1, .h1 {font-size: var(--bs-h1-font-size); }
    h2, .h2 {font-size: var(--bs-h2-font-size); }
    h3, .h3 {font-size: var(--bs-h3-font-size); }
    h4, .h4 {font-size: var(--bs-h4-font-size); }
    h5, .h5 {font-size: var(--bs-h5-font-size); }
    h6, .h6 {font-size: var(--bs-h6-font-size); }
    .fs-display {font-size: var(--bs-display-font-size);}
}

/* Responsive subtitle / body paragraph text — scales md → base → lg across breakpoints */
.fs-subtitle { font-size: var(--bs-font-size-md); }

@media (min-width: 768px) {
    .fs-subtitle { font-size: var(--bs-body-font-size); }
}

@media (min-width: 1200px) {
    .fs-subtitle { font-size: var(--bs-font-size-lg); }
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
}

.fs-xs  {font-size: var(--bs-font-size-xs) !important; }
.fs-sm  {font-size: var(--bs-font-size-sm) !important; }
.fs-md  {font-size: var(--bs-font-size-md) !important; }
.fs-base{font-size: var(--bs-body-font-size) !important; }
.fs-lg  {font-size: var(--bs-font-size-lg); }
.fs-xl  {font-size: var(--bs-font-size-xl); }
.small   {font-size: var(--bs-font-size-sm); }
.fs-18  {font-size: 18px; }
.fs-20  {font-size: 20px; }

.fst-italic {font-style: italic !important; }
.fst-normal {font-style: normal !important; }

.fw-lighter {font-weight: lighter !important; }
.fw-light   {font-weight: 300 !important; }
.fw-normal  {font-weight: 400 !important; }
.fw-medium  {font-weight: 500 !important; }
.fw-semibold{font-weight: 600 !important; }
.fw-bold    {font-weight: 700 !important; }
.fw-black  {font-weight: 900 !important; }
.fw-bolder  {font-weight: bolder !important; }

.lh-xxxs   {line-height: 0.72 !important; }
.lh-xxs   {line-height: 0.8 !important; }
.lh-1   {line-height: 1 !important; }
.lh-xs  {line-height: 1.1666666667 !important; }
.lh-16  {line-height: 1.6 !important; }
.lh-12  {line-height: 1.2 !important; }
.lh-13  {line-height: 1.33 !important; }
.lh-sm  {line-height: 1.25 !important; }
.lh-base{line-height: var(--bs-body-line-height) !important; }
.lh-lg  {line-height: 2 !important; }

.ls-03 {letter-spacing: -0.03em !important;}
.ls-05 {letter-spacing: -0.0052em !important;}
.ls-02 {letter-spacing: -0.02em !important;}
.ls-029 {letter-spacing: -0.029em !important;}
.ls-0 {letter-spacing: 0 !important;}

.text-lowercase {text-transform: lowercase !important; }
.text-uppercase {text-transform: uppercase !important; }
.text-capitalize{text-transform: capitalize !important; }
.text-none{text-transform: none !important; }

.text-wrap {white-space: normal !important; }
.text-nowrap {white-space: nowrap !important; }

.text-decoration-none {text-decoration: none !important; }
.text-decoration-underline {text-decoration: underline !important; }

.text-start {text-align: left !important; }
.text-end {text-align: right !important; }
.text-center {text-align: center !important; }

@media (min-width: 576px) {
    .text-sm-start  {text-align: left !important; }
    .text-sm-end    {text-align: right !important; }
    .text-sm-center {text-align: center !important; }
}

@media (min-width: 768px) {
    .text-md-start  {text-align: left !important; }
    .text-md-end    {text-align: right !important; }
    .text-md-center {text-align: center !important; }
}

@media (min-width: 992px) {
    .text-lg-start  {text-align: left !important; }
    .text-lg-end    {text-align: right !important; }
    .text-lg-center {text-align: center !important; }
}

@media (min-width: 1200px) {
    .text-xl-start  {text-align: left !important; }
    .text-xl-end    {text-align: right !important; }
    .text-xl-center {text-align: center !important; }
}

/* .section-spacing-top    {padding-top: 60px;}
.section-spacing-bottom {padding-bottom: 60px;}
.section-content        {padding: 60px 0;}
@media (min-width: 768px) {
    .section-spacing-top    {padding-top: 80px;}
    .section-spacing-bottom {padding-bottom: 80px;}
    .section-content        {padding: 80px 0;}
}
@media (min-width: 992px) {
    .section-spacing-top    {padding-top: 90px;}
    .section-spacing-bottom {padding-bottom: 90px;}
    .section-content        {padding: 90px 0;}
}
@media (min-width: 1200px) {
    .section-spacing-top    {padding-top: 100px;}
    .section-spacing-bottom {padding-bottom: 100px;}
    .section-content        {padding: 100px 0;}
} */


.section-spacing-top-xs {
    padding-top: var(--bs-section-spacing-xs);
}
.section-spacing-top-sm {
    padding-top: var(--bs-section-spacing-sm);
}
.section-spacing-top-md {
    padding-top: var(--bs-section-spacing-md);
}
.section-spacing-top-lg {
    padding-top: var(--bs-section-spacing-lg);
}

.section-spacing-bottom-sm {
    padding-bottom: var(--bs-section-spacing-sm);
}
.section-spacing-bottom-md {
    padding-bottom: var(--bs-section-spacing-md);
}
.section-spacing-bottom-lg {
    padding-bottom: var(--bs-section-spacing-lg);
}

.section-spacing-sm {
    padding-block: var(--bs-section-spacing-sm);
}
.section-spacing-md {
    padding-block: var(--bs-section-spacing-md);
}
.section-spacing-lg {
    padding-block: var(--bs-section-spacing-lg);
}

/*=============================================
=          Mobile card rail (shared)          =
=============================================*/
/*
  One card at a time with the next one peeking, instead of a tall vertical stack. A phone shows a
  stack of cards as a wall to scroll past; a rail invites a swipe and costs a third of the height.

  These are the shared values. Sections whose own CSS is id-scoped (the convention in this theme)
  set the rail properties themselves but read the widths from here, so every rail on the site
  snaps and peeks identically. The .snap-rail class below covers containers with no competing
  scoped rule.
*/
:root {
    --rail-card-width: 86%;
    --rail-gutter: 16px;
    --card-radius: 8px;
    --placeholder-bg: #f5f2ee;
}

/*
  A horizontally scrolling region is only operable with a pointer unless it can take focus, so
  every rail carries tabindex="0" in markup and gets a visible ring here. Without it a keyboard
  or switch user cannot reach the second card at all (WCAG 2.1.1), and an unstyled focused
  scroll container gives them no indication of where they are (2.4.7).
*/
.snap-rail:focus-visible,
[data-rail]:focus-visible {
    outline: 2px solid var(--bs-on-surface, currentColor);
    outline-offset: 4px;
    border-radius: 4px;
}

@media (max-width: 767.98px) {
    .snap-rail {
        display: flex;
        flex-wrap: nowrap;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        /* Bleed to the screen edge so the peeking card isn't clipped by container padding. */
        margin-inline: calc(var(--rail-gutter) * -1);
        padding-inline: var(--rail-gutter);
        scroll-padding-inline-start: var(--rail-gutter);
    }
    .snap-rail::-webkit-scrollbar {
        display: none;
    }
    .snap-rail > * {
        flex: 0 0 var(--rail-card-width);
        max-width: var(--rail-card-width);
        scroll-snap-align: start;
    }
}

/*=============================================
=          Section color schemes              =
=============================================*/
/*
  A section picks one color scheme by name (schema setting `surface`) instead of carrying its own
  hex values. The scheme sets every color role at once: background, text, eyebrow, accent, cards
  and pattern. Each combination below was contrast-checked as a set, so switching a section's
  scheme in the editor can't leave text unreadable.

  Section CSS reads only the role tokens (--surface-*), never hex values or the scheme name.

  Usage:
    Outer element:  class="my-section {% render 'surface-classes', settings: section.settings %}"
    Pattern:        {% render 'surface-pattern', settings: section.settings, overlay_id: section.id %}
    Cards:          add .surface-card. Inside a card the scheme tokens resolve to the card's colors,
                    so a card's eyebrow or accent reads var(--surface-eyebrow) like everything else.
    Eyebrows:       add .surface-eyebrow. On Teal it becomes a white chip, because no brand color
                    passes AA as small text on #0096AA.

  | Scheme         | Background | Text      | Eyebrow          | Accent  | Cards                  |
  | surface        | white      | navy      | orange (A85800)  | teal    | white + hairline, navy |
  | surface-tint   | warm gray  | navy      | orange (A85800)  | teal    | white, navy text       |
  | surface-gray   | light gray | navy      | orange (A85800)  | teal    | white, navy text       |
  | surface-teal   | teal       | white *   | navy on white    | white   | white, navy text       |
  | surface-orange | orange     | deep navy | deep navy        | navy    | white, navy text       |
  | surface-dark   | navy       | white     | light orange     | aqua    | white 8%, white text   |
  * White on teal is 3.5:1: AA for headings (large text) only. Body copy belongs in cards.
*/
.surface,
.surface-tint,
.surface-gray,
.surface-teal,
.surface-orange,
.surface-dark {
    /* Light-scheme roles. Schemes below override only what differs. */
    --surface-bg: var(--bs-surface);
    --surface-text: var(--bs-on-surface);
    --surface-muted: var(--bs-on-surface-muted);
    --surface-eyebrow: var(--bs-color-primary-text);
    --surface-accent: var(--bs-color-teal);
    --surface-on-accent: var(--bs-color-white);
    --surface-inverse-bg: var(--bs-color-secondary-100);
    --surface-inverse-text: var(--bs-color-white);
    --surface-hairline: var(--bs-surface-hairline);
    --surface-pattern: var(--bs-on-surface);

    /* Card roles, applied by .surface-card. */
    --surface-card-bg: var(--bs-color-white);
    --surface-card-text: var(--bs-on-surface);
    --surface-card-muted: var(--bs-on-surface-muted);
    --surface-card-eyebrow: var(--bs-color-primary-text);
    --surface-card-accent: var(--bs-color-teal);
    --surface-card-on-accent: var(--bs-color-white);
    --surface-card-inverse-bg: var(--bs-color-secondary-100);
    --surface-card-inverse-text: var(--bs-color-white);
    --surface-card-hairline: var(--bs-surface-hairline);

    position: relative;
    background-color: var(--surface-bg);
    color: var(--surface-text);
}

.surface-tint {
    --surface-bg: var(--bs-surface-tint);
}

.surface-gray {
    --surface-bg: var(--bs-color-gray-100);
}

.surface-teal {
    --surface-bg: var(--bs-color-teal);
    --surface-text: var(--bs-color-white);
    --surface-muted: var(--bs-color-white);
    --surface-eyebrow: var(--bs-color-secondary-100);
    --surface-accent: var(--bs-color-white);
    --surface-on-accent: var(--bs-color-secondary-100);
    --surface-inverse-bg: var(--bs-color-white);
    --surface-inverse-text: var(--bs-color-secondary-100);
    --surface-hairline: var(--bs-surface-hairline-dark);
    --surface-pattern: var(--bs-color-white);
}

.surface-orange {
    --surface-bg: var(--bs-color-primary);
    --surface-text: var(--bs-color-secondary-300);
    --surface-muted: var(--bs-color-secondary-300);
    --surface-eyebrow: var(--bs-color-secondary-300);
    --surface-accent: var(--bs-color-secondary-300);
    --surface-on-accent: var(--bs-color-white);
    --surface-inverse-bg: var(--bs-color-secondary-300);
    --surface-inverse-text: var(--bs-color-white);
    --surface-pattern: var(--bs-color-secondary-300);
}

.surface-dark {
    --surface-bg: var(--bs-surface-dark);
    --surface-text: var(--bs-on-surface-dark);
    --surface-muted: var(--bs-on-surface-dark-muted);
    --surface-eyebrow: var(--bs-color-primary-200);
    --surface-accent: var(--bs-color-secondary-1);
    --surface-on-accent: var(--bs-color-secondary-300);
    --surface-inverse-bg: var(--bs-color-white);
    --surface-inverse-text: var(--bs-color-secondary-100);
    --surface-hairline: var(--bs-surface-hairline-dark);
    --surface-pattern: var(--bs-on-surface-dark);

    --surface-card-bg: var(--bs-surface-hairline-dark);
    --surface-card-text: var(--bs-on-surface-dark);
    --surface-card-muted: var(--bs-on-surface-dark-muted);
    --surface-card-eyebrow: var(--bs-color-primary-200);
    --surface-card-accent: var(--bs-color-secondary-1);
    --surface-card-on-accent: var(--bs-color-secondary-300);
    --surface-card-inverse-bg: var(--bs-color-white);
    --surface-card-inverse-text: var(--bs-color-secondary-100);
    --surface-card-hairline: var(--bs-surface-hairline-dark);
}

/* Inside a card, the scheme tokens resolve to the card's colors. */
.surface-card {
    --surface-text: var(--surface-card-text);
    --surface-muted: var(--surface-card-muted);
    --surface-eyebrow: var(--surface-card-eyebrow);
    --surface-accent: var(--surface-card-accent);
    --surface-on-accent: var(--surface-card-on-accent);
    --surface-inverse-bg: var(--surface-card-inverse-bg);
    --surface-inverse-text: var(--surface-card-inverse-text);
    --surface-hairline: var(--surface-card-hairline);
    background-color: var(--surface-card-bg);
    color: var(--surface-text);
}

.surface-eyebrow {
    color: var(--surface-eyebrow);
    font-size: var(--bs-body-font-size);
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.surface-teal .surface-eyebrow {
    display: inline-block;
    padding: 0.25em 0.75em;
    border-radius: 999px;
    background-color: var(--bs-color-white);
}
.surface-teal .surface-card .surface-eyebrow {
    display: revert;
    padding: 0;
    border-radius: 0;
    background-color: transparent;
}

.text-muted-surface {
    color: var(--surface-muted);
}

/* Hairline divider that reads correctly on every scheme. */
.surface-rule {
    border-color: var(--surface-hairline);
}

/*
  Seam between two sections that share a scheme. Adjacent same-colour sections read as one
  undifferentiated block, so the boundary has to be drawn rather than implied by colour alone.
*/
.surface-seam-top {
    border-top: 1px solid var(--surface-hairline);
}

/* Pattern host. The overlay itself comes from snippets/surface-pattern.liquid. */
.surface--patterned {
    position: relative;
    overflow: hidden;
}
.surface--patterned > .bbs-wave-overlay {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
    pointer-events: none;
    opacity: 0.5;
    color: var(--surface-pattern, currentColor);
}
/* The spiral packs its lines tighter than the wave, so it needs a lighter hand to read as texture. */
.surface--patterned > .bbs-wave-overlay--spiral {
    opacity: 0.12;
}
.surface--patterned > .bbs-wave-overlay .bbs-wave-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 120%;
}
.surface--patterned > .bbs-wave-overlay .bbs-wave-svg path {
    fill: none;
    stroke: currentColor;
    stroke-width: 1;
    opacity: 0.18;
}
/* Content sits above the pattern without each section re-declaring a stacking context. */
.surface--patterned > *:not(.bbs-wave-overlay) {
    position: relative;
    z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
    .surface--patterned > .bbs-wave-overlay {
        display: none;
    }
}

/*=============================================
=                 Other CSS                  =
=============================================*/

.whitespace-nowrap {
    white-space: nowrap;
}
.whitespace-normal {
    white-space: normal;
}


.visually-hidden-skip {
    position: absolute!important;
    overflow: hidden;
    width: 1px;
    height: 0px;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    word-wrap: normal!important;
}

.visually-hidden {
    display: none;
}

.cart-items.updating {
    pointer-events: none;
    opacity: 0.6;
}

.quantity-wrapper{
    max-width: 180px;
}
.quantity-wrapper .form-control:focus{
    border: var(--bs-input-border-width) solid var(--bs-input-border-color);
}

.disabled{
    pointer-events: none !important;
}

[data-touch-moveable]{
    overscroll-behavior-y: contain;  
}

.scroll-fixed{
    position: fixed !important;
    left: 0;
    top: 0;
    right: 0;
    width: 100%;
    overflow: hidden !important;
}

/* Welcome kit overlay: lock background scroll without position:fixed + scrollTo */
html.welcome-kit-scroll-lock,
html.welcome-kit-scroll-lock body {
    overflow: hidden !important;
}

html.welcome-kit-scroll-lock {
    height: 100%;
}

body:has(.modal.open) {
    position: static !important;
}

@media (min-width: 1200px) {
    .scroll-fixed{
        position: static !important;
    }
}



.overlay--body {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block !important;
    width: 100%;
    height: 100%;
    background: var(--bs-body-color);
    z-index: 1160;
    opacity: 0.5;
}

.overlay {
    position: absolute;
    z-index: 0;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
}


.social-sharing{
    list-style: none;
    padding: 0;
    margin-bottom: 0;
}
.social-sharing li{
    margin-right: 20px;
    line-height: 1;
    vertical-align: top;
    margin-bottom: 20px;
}
.social-sharing li a{
    line-height: 1;
    vertical-align: top;
    display: inline-block;
    color: var(--bs-color-gray-100);
}
.social-sharing li [class^="icon-"]{
    font-size: 20px;
    line-height: 1;
    vertical-align: top;
}

.placeholder-svg{
    width: 100%;
    height: 100%;
}


/*===============  B2B  =================*/

.tooltip {
    position: relative;
    display: inline-block;
}
.tooltip .tooltiptext {
    visibility: hidden;
    min-width: 200px;
    max-height: 235px;
    overflow: auto;
    background-color: var(--bs-body-bg);
    text-align: center;
    padding: 10px;
    position: absolute;
    left: 0;
    box-shadow: 0 1px 6px var(--bs-border-color);
    z-index: 25;
}
.tooltip:hover .tooltiptext {
    visibility: visible;
}
.volume-price-list {
    max-width: 250px;
}
.volume-price-list li:nth-child(even) {
    background-color: var(--bs-color-gray-100);
}
.quantity__rules li {
    position: relative;
}
.quantity__rules li:not(:last-child)::after {
    content: "\2022";
    font-size: 1.5rem;
    line-height: 1;
    vertical-align: middle;
    margin: 0 0.35rem;
}
.tooltip .quantity__rules li::after {
    display: none;
}


.alert ul{
    list-style: none;
    padding-left: 0;
    padding-top: 4px;
}


/* ==================================================================  
    Table  
==================================================================== */

table {
    border-collapse: collapse;
}

.table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.table {
    width: 100%;
    margin-bottom: 1rem;
}

.table-bordered,
.table-bordered td,
.table-bordered th {
    border: 1px solid var(--bs-color-gray-200);
}

.table td,
.table th {
    padding: .75rem;
    vertical-align: top;
    border-bottom: 1px solid var(--bs-color-gray-200);
    text-align: left;
}

.table th {
    font-weight: 400;
    text-transform: uppercase;
}

.modal {
    display: none;
}





/*=============================================
=               Collapsible Panel             =
=============================================*/

.collapsible_panel .panel_toggle{
    display: flex;
    align-items: center;
    padding: 10px 30px 14px 22px;
    cursor: pointer;
}

.toggle-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 350ms ease-in-out;
}

.toggle-content.open {
    grid-template-rows: 1fr;
}

.collapsible_panel.open .panel_toggle svg{
    transform: rotate(180deg);
}

.toggle-content-wrap{
    overflow: hidden;
    padding: 8px 0;
}

.collapsible_panel{
    border-top: 1px solid var(--bs-border-color);
    border-bottom: 1px solid var(--bs-border-color);
}
.collapsible_panel + .collapsible_panel{
    margin-top: 0 !important;
    border-top: 0 !important;
}

.faq-container .toggle-content {
    padding: 0 20px;
    position: relative;
}
.faq-container .toggle-content:after{
    content: "";
    position: absolute;
    top: 0;
    right: 15px;
    left: 15px;
    height: 1px;
    display: inline-block;
    background-color: transparent;
    opacity: 0; 
    visibility: hidden;
    transition: 350ms ease-in-out;
}
.faq-container .toggle-content.open:after{
    background-color: var(--bs-border-color);
    opacity: 1;
    visibility: visible;
}

/*=============================================
=               Custom Dropdown               =
=============================================*/

.custom-dropdown{
    border: var(--bs-input-border-width) solid var(--bs-input-border-color);
    position: relative;
    border-radius: var(--bs-border-radius-input);
    font-family: var(--bs-font-family-input);
    font-size: var(--bs-font-size-input);
    font-weight: var(--bs-font-weight-input);
    color: var(--bs-input-text-color);
    line-height: var(--bs-line-height-input);
}
.custom-dropdown .tab_toggle{
    padding: var(--bs-y-padding-input) var(--bs-x-padding-input);
    display: flex;
    align-items: center;
    line-height: 23px;
    cursor: pointer;
    color: inherit;
}
.custom-dropdown .tab_toggle .option_txt {
    color: var(--bs-body-color, #304552);
}

.custom-dropdown.open .tab_toggle svg{
    transform: rotate(180deg);
}

.custom-dropdown .toggle-content{
    display: grid;
    grid-template-rows: 0fr;
    position: absolute;
    top: calc(100% + 1px);
    margin: 0 -1px;
    padding: 0;
    list-style: none;
    border: var(--bs-input-border-width) solid transparent;
    border-bottom: none;
    border-radius: 0; 
    background-color: var(--bs-color-gray-100);
    width: calc(100% + 2px);
    z-index: 9;
    /* clip-path: inset(0 0 100% 0); */
    transition: border-color .3s ease-in-out, grid-template-rows .3s ease-in-out, opacity .3s ease-in-out, visibility .3s ease-in-out;
    border-top: 0;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.custom-dropdown .toggle-content.open{
    grid-template-rows: 1fr;
    /* clip-path: inset(0 0 0 0); */
    border-color: var(--bs-input-border-color);
    border-bottom: 1px solid var(--bs-input-border-color);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
} 
.custom-dropdown ul li{
    padding-left: calc(var(--bs-form-check-width) + 17px);
    padding-right: 16px;
    margin-bottom: 0;
    padding-block: 12px;
}
.custom-dropdown .toggle-content > * {
    min-height: 0;
}

.custom-dropdown .toggle-content > fieldset {
    min-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    border: 0;
}

.custom-dropdown .toggle-content  > ul{
    width: calc(100% - 16px);
    margin: 0 auto !important;
    border-top: 0;
}

.custom-dropdown ul li.open ul{
    display: block !important;
}
.custom-dropdown .toggle-content>ul > li:first-child{
   padding-top: 20px;
}
.custom-dropdown .toggle-content>ul > li:last-child{
    padding-bottom: 20px;
 }

/*=============================================
=            Tabs                             =
=============================================*/


.tabs {
    border-bottom: 1px solid var(--bs-border-color);
}

.tabs .tablink {
    padding: 0.75rem 1.2rem;
    position: relative;
}

.tabs .tablink .nav-link {
    transition: ease-in-out 0.25s;
}

.tabs .tablink .nav-link::after {
    content: '';
    display: block;
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 2px;
    background: transparent;
    transition: opacity ease-in-out 0.25s;
}

.tablink.open .nav-link,
.tablink .nav-link:hover .nav-link {
    color: var(--bs-color-primary);
}

.tablink.open .nav-link::after,
.tablink:hover .nav-link::after {
    background: var(--bs-color-primary);
}

.tabcontent {
    display: none;
}

.tabcontent.open {
    display: block;
}

.okeReviews .flickity-button {
    outline: none !important;
}

.okeReviews .flickity-button:focus {
    box-shadow: unset !important;
}

.okeReviews-reviewsCarousel-review-product,
.okeReviews-reviewsCarousel-review-reviewer {
    display: none;
}

.okeReviews-reviewsCarousel-review-content {
    text-align: left;
    margin-bottom: 0 !important;
}

.okeReviews-reviewsCarousel-review {
    padding: 30px 20px !important;
}


    right: 30px;
    left: unset;
}


}

.shopify-policy__container {
    width: 100%;
    max-width: var(--bs-container-width);
    padding-right: var(--bs-container-padding);
    padding-left: var(--bs-container-padding);
    padding-top: 100px;
    padding-bottom: 100px;
}

.shopify-policy__container .shopify-policy__title {
    margin-bottom: 100px;
}

.shopify-policy__body .rte h1, 
.shopify-policy__body .rte h2, 
.shopify-policy__body .rte h3, 
.shopify-policy__body .rte h4, 
.shopify-policy__body .rte h5, 
.shopify-policy__body .rte h6 {
    margin-top: 1em;
    margin-bottom: .75em;
}

.shopify-policy__body a {
    word-break: break-word;
}



span[data-variant-discount] {
    margin-left: 3px;
}

/* Cookie Policy Modal */
#shopify-pc__banner {
    z-index: 9999999999;
}
.shopify-pc__banner__btns button {
    border-radius: 80px !important;
    padding: 10px 24px;
}
#shopify-pc__banner__btn-accept {
    background: #000000;
    color: #ffffff;
}
#shopify-pc__banner__btn-manage-prefs {
    order: 1;
    margin: 0px !important;
    font-size: 16px !important;
    font-weight: 300 !important;
    color: #ffffffde !important;
}

#shopify-pc__banner__btn-decline {
    order: 2;
    display: none !important;
}

#shopify-pc__banner__btn-accept {
    order: 2;
    margin-left: auto;
    font-weight: bold;
    flex: 0 0 auto;
}
#shopify-pc__banner__btn-decline,
#shopify-pc__banner__btn-manage-prefs {
    order: 1;
    flex: 0 0 auto;
    margin-right: 8px;
    font-size: 0.875rem;
}
@media(max-width: 481px) {
    #shopify-pc__banner__btn-accept {
        width: 100%;
    }
    .shopify-pc__banner__btns button {
        padding: 16px 24px;
    }
}

.subscription-upsell-modal__body {
    padding: 2rem;
}

.subscription-upsell-modal__content {
    padding-top: 20px;
}

.subscription-upsell-modal__head {
    display: flex;
    justify-content: flex-end;
    padding: 0;
    border: none;
    margin-bottom: -0.5rem;
}

.subscription-upsell-modal__head .close-quickshop {
    margin-left: auto;
}

/* Top strip: image always beside heading, on every viewport */
.subscription-upsell-modal__top-strip {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    margin-bottom: 1rem;
    min-width: 0;
}

.subscription-upsell-modal__image-wrapper {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    flex: 0 1 170px;
    width: 170px;
    max-width: 35%;
    min-width: 80px;
}

.subscription-upsell-modal__image-wrapper img {
    width: 100%;
    height: auto;
    object-fit: contain;
    display: block;
}

/* Text column beside image: heading + subheading stacked */
.subscription-upsell-modal__top-content {
    flex: 1 1 0;
    min-width: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.25rem;
}

.subscription-upsell-modal__heading {
    margin: 0;
}

.subscription-upsell-modal__subheading {
    margin: 0 0 0.5rem;
    /* Normal black to match standard site text */
    color: #000000;
}

.subscription-upsell-modal__highlights {
    display: grid;
    gap: 0.75rem;
}

.subscription-upsell-modal__highlight {
    background-color: #f7f7f7;
    border-radius: 12px;
    padding: 0.75rem 1rem;
    font-size: 0.95rem;
    line-height: 1.4;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    text-align: left;
}

.subscription-upsell-modal__highlight-text {
    flex: 1;
}

.subscription-upsell-modal__highlight-icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
}

.subscription-upsell-modal__highlight-icon img {
    max-width: 32px;
    max-height: 32px;
}

.subscription-upsell-modal__highlight--savings {
    background-color: #eef6ff;
    color: #1d3a8a;
    font-weight: 600;
}

.subscription-upsell-modal__highlight--planet {
    background-color: rgba(19, 154, 105, 0.18);
    color: #0f6b45;
}

.subscription-upsell-modal__copy {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.subscription-upsell-modal__pricing-highlight {
    font-size: 1.5rem;
}

.subscription-upsell-modal__actions .btn {
    min-height: 48px;
    width: 100%;
    font-size: 0.875rem;
    letter-spacing: 0.03em;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.subscription-upsell-modal__actions .btn + .btn {
    margin-top: 0.5rem;
}

.subscription-upsell-modal__list li {
    margin-bottom: 0.75rem;
    font-size: 0.95rem;
}

.subscription-upsell-modal__list li:last-child {
    margin-bottom: 0;
}

@media (max-width: 767px) {
    .subscription-upsell-modal__content {
        padding-top: 0;
    }

    .subscription-upsell-modal__body {
        padding: 1rem 1.25rem;
    }

    /* Shrink image to a small thumbnail on mobile */
    .subscription-upsell-modal__top-strip {
        gap: 0.75rem;
        margin-bottom: 0.75rem;
    }

    .subscription-upsell-modal__image-wrapper {
        flex: 0 0 88px;
        width: 88px;
        border-radius: 8px;
    }

    /* Tighten copy and highlights */
    .subscription-upsell-modal__copy {
        gap: 0.5rem;
    }

    .subscription-upsell-modal__highlights {
        gap: 0.5rem;
    }

    .subscription-upsell-modal__highlight {
        padding: 0.5rem 0.75rem;
        font-size: 0.85rem;
    }

    /* Slightly shorter buttons */
    .subscription-upsell-modal__actions .btn {
        min-height: 44px;
    }
}

@media (max-width: 399.98px) {
    .subscription-upsell-modal__top-strip {
        flex-wrap: wrap;
        row-gap: 0.5rem;
    }

    .subscription-upsell-modal__top-content {
        display: contents;
    }

    .subscription-upsell-modal__heading {
        flex: 1 1 0;
        min-width: 0;
        align-self: center;
    }

    .subscription-upsell-modal__subheading {
        flex: 0 0 100%;
        max-width: 100%;
    }
}

/* ============================================================
   Subscription Upsell Modal — Variant (VWO test: collagen-upsell-v1)
   ============================================================ */

/* Cap modal width for both control and variant so width is not a test variable */
[data-upsell-modal] .modal-dialog {
    max-width: 600px;
}

/* Variant top strip: hide image (moved into deal card), let copy run full-width */
.subscription-upsell-modal__body--variant .subscription-upsell-modal__image-wrapper {
    display: none;
}

.subscription-upsell-modal__body--variant {
    text-align: center;
}

.subscription-upsell-modal__body--variant .subscription-upsell-modal__heading {
    margin-bottom: 0.4rem;
}

.subscription-upsell-modal__body--variant .subscription-upsell-modal__subheading {
    font-size: 1.1rem;
    font-weight: 400;
    color: #444;
    margin-bottom: 0.25rem;
}

/* Social proof — eyebrow label above the heading */
.subscription-upsell-modal__social-proof-bar {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    color: #9a7b2e;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 0.3rem;
}

/* Deal card — horizontal line-item layout */
.subscription-upsell-modal__price-anchor {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    background: #fff;
    border: 1.5px solid #d0e8d8;
    border-radius: 12px;
    padding: 0.9rem 1rem;
    margin-top: 0.75rem;
}

/* Product image — left column, fixed width */
.subscription-upsell-modal__deal-img-wrap {
    flex-shrink: 0;
}

.subscription-upsell-modal__deal-img {
    display: block;
    width: 88px;
    height: 88px;
    object-fit: contain;
    border-radius: 6px;
}

/* Text column — right side, always left-aligned regardless of parent centering */
.subscription-upsell-modal__deal-info {
    flex: 1;
    min-width: 0;
    text-align: left;
}

/* Product name row */
.subscription-upsell-modal__deal-name {
    font-size: 16px;
    color: #333;
    margin-bottom: 0.4rem;
    line-height: 1.3;
}

.subscription-upsell-modal__deal-name strong {
    color: #111;
    font-weight: 700;
}

/* Price row — strikethrough, current price, save badge */
.subscription-upsell-modal__deal-price {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 0.35rem;
}

.subscription-upsell-modal__deal-was {
    text-decoration: line-through;
    color: #888;
    font-size: 0.9rem;
    font-weight: 400;
}

.subscription-upsell-modal__deal-now {
    font-size: 1.55rem;
    font-weight: 800;
    color: #0f6b45;
    line-height: 1;
    letter-spacing: -0.02em;
}

.subscription-upsell-modal__deal-save {
    background: #0f6b45;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 0.22rem 0.55rem;
    border-radius: 20px;
    text-transform: uppercase;
    line-height: 1.3;
    align-self: center;
    white-space: nowrap;
}

/* Shipping note */
.subscription-upsell-modal__deal-ship {
    font-size: 14px;
    color: #666;
}

/* Eco note — last row inside the deal card, clearly secondary */
.subscription-upsell-modal__deal-eco {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    font-size: 0.78rem;
    color: #5a8a6a;
    line-height: 1.4;
    margin-top: 0.55rem;
    padding-top: 0.55rem;
    border-top: 1px solid #e6f2ea;
}

.subscription-upsell-modal__deal-eco svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    margin-top: 1px;
    opacity: 0.85;
}

/* Plain-text decline link — min 44px tap target per Apple HIG / WCAG */
.subscription-upsell-modal__decline-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 44px;
    background: none;
    border: none;
    padding: 0.75rem 1rem;
    font-size: 0.8rem;
    color: #888;
    text-align: center;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color 0.15s;
}

.subscription-upsell-modal__decline-link:hover {
    color: #555;
}

/* Variant mobile adjustments */
@media (max-width: 767px) {
    .subscription-upsell-modal__price-anchor {
        gap: 0.7rem;
        padding: 0.8rem 0.85rem;
    }

    .subscription-upsell-modal__deal-img {
        width: 72px;
        height: 72px;
    }

    .subscription-upsell-modal__deal-name {
        font-size: 14px;
    }

}

/* === Swiper — shared slider utilities ===
  overflow-x: clip prevents the peeking slide from causing a page-level
  horizontal scrollbar. Unlike overflow-x: hidden it does not create a
  scroll/stacking context, so sticky elements and positioned children
  are unaffected.
*/
.evidence-cards__slider,
.benefit-cards__slider,
.before-after-cards__slider {
  overflow-x: clip;
}

.evidence-cards__slider .swiper-slide,
.benefit-cards__slider .swiper-slide,
.before-after-cards__slider .swiper-slide {
  height: auto;
}

/* Expert Voice sessions: hide the subscription/one-time toggle entirely.
   The inline script in theme.liquid adds ev-session to <html> when
   ?ev_referral= is present or sessionStorage bubs:ev-session is set.
   The rechage-widget.liquid script enforces the one-time radio so the
   form submits correctly even though the widget is not visible. */
html.ev-session recharge-widget .recharge-subscription-widget {
  display: none;
}

/* Bootstrap .d-flex uses !important so we must match it */
html.ev-session [data-ev-hide="frequency-heading"] {
  display: none !important;
}

/* Hide the Recharge overlay visually while the auto-dismiss script clicks its
   "Continue" button in the background. opacity:0 keeps it in the DOM so React
   renders the full component tree (including buttons). pointer-events:none
   prevents accidental user interaction with the invisible overlay. */
html.ev-session #recharge-storefront-experiences__cart-overlay {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Alia popup: responsive scroll fix
   Root cause: Alia JS hard-codes pixel height/width on the overlay at load time,
   preventing proper scroll and clipping content on short viewports.
   Fix: the outer wrapper scrolls as one unit (background + content together).
   The bg container uses min-height:100% + height:auto so it is always at least
   viewport height (background always covers) and grows when content is taller
   (no clipping). Alia's own centering is preserved for desktop. */

/* 1. Override JS-injected pixel dimensions on the fixed overlay */
#alia-root-190141 {
    width: 100% !important;
    height: 100% !important;
}

/* 2. Scroll container: fill the overlay, scroll vertically */
[id^="alia-popup-root-alia-"] {
    height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

/* 3. Background container: grows with content, bg image always covers full area.
      position:relative makes it the containing block for the tint overlay inside,
      so the overlay's inset:0 resolves against this element (not the root). */
[id^="alia-popup-root-alia-"] > div:nth-child(2) {
    position: relative !important;
    min-height: 100% !important;
    height: auto !important;
    padding-top: 24px !important;
    padding-bottom: 24px !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* 4. Tint overlay (last child of bg container): Alia's JS recalculates its
      inset when the container grows, shrinking it to cover only the middle.
      Force it to always fill the full bg container. */
[id^="alia-popup-root-alia-"] > div:nth-child(2) > div:last-child {
    inset: 0 !important;
    height: 100% !important;
    width: 100% !important;
}
