html.lenis,
html.lenis body {
  height: auto;
}

.lenis:not(.lenis-autoToggle).lenis-stopped {
  overflow: clip;
}

.lenis [data-lenis-prevent],
.lenis [data-lenis-prevent-wheel],
.lenis [data-lenis-prevent-touch],
.lenis [data-lenis-prevent-vertical],
.lenis [data-lenis-prevent-horizontal] {
  overscroll-behavior: contain;
}

.lenis.lenis-smooth iframe {
  pointer-events: none;
}

.lenis.lenis-autoToggle {
  transition-property: overflow;
  transition-duration: 1ms;
  transition-behavior: allow-discrete;
}

.admin-bar .x-offcanvas_inner {
    margin-top: 0;
}

#pmsm-main-form {
    padding-bottom: 6rem;
}

.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before {
    padding-top: 20px;
}

svg:not([height]) {
    min-height: 6px;
}

b, strong {
    font-weight: bold;
}

p {
    text-wrap: auto;
    text-wrap: pretty; /*won't work in Safari */
}

blockquote {
    font-family: inherit;
}

sup {
    top: -0.9em;
    font-size: 50%;
}

.x-offcanvas_inner {
    row-gap: 2rem;
}

#brx-content {
  overflow: clip;
}


#perfmatters-script-manager-wrapper {
    top: 0 !important;
    position: relative !important;
}

.x-modal_container {
    box-shadow:
    0.3px 2.1px 2.2px rgba(0, 0, 0, 0.028),
    0.7px 5.1px 5.3px rgba(0, 0, 0, 0.04),
    1.3px 9.5px 10px rgba(0, 0, 0, 0.05),
    2.2px 17px 17.9px rgba(0, 0, 0, 0.06),
    4.2px 31.8px 33.4px rgba(0, 0, 0, 0.072),
    10px 76px 80px rgba(0, 0, 0, 0.1);
}

.brxe-text a {
    display: inline-block;
    position: relative;
}

a.brxe-text-basic {
    position: relative;
}


.brxe-section.center h1, .brxe-section.center h2, .brxe-section.center h3, .brxe-container.center h1, .brxe-container.center h2, .brxe-container.center h3, .brxe-block.center h1, .brxe-block.center h2, .brxe-block.center h3 {
    text-align:  center;
}

.center {
    align-items: center;
}


/* Prevent iPhone zooming in when focusing on form fields */
@media screen and (max-width: 768px) {
  input[type="text"],
  input[type="number"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  select,
  textarea {
    font-size: 16px !important;
  }
}

/*** HEADER *************************************************/
#brx-header {
    max-width: 100vw;
    z-index: 999;
}

#header-inner {
    padding: var(--space-xs) var(--space-m);
}

#brx-header > .brxe-section > .brxe-container {
    max-width: 100%;
}

#brx-header > .brxe-section.has-megamenu > .brxe-container {
    position: static;
}

#brx-header.sticky.scrolling > .brxe-container {
    transition: all 300ms ease-out 200ms;
}

#menu-main-menu .menu-item a {
    transition: all 200ms ease-out;
}

/* NAVBAR *******************************************************/
#navbar {
	background: transparent;
    transition: transform 200ms linear, background 800ms ease-in-out ;
}

.navbar-shadow {
    box-shadow: 0 0.3px 1.4px -4px rgb(0 0 0 / 5%), 0 0.8px 3.4px -4px rgb(0 0 0 / 7%), 0 1.5px 6.4px -4px rgb(0 0 0 / 8%), 0 2.7px 11.4px -4px rgb(0 0 0 / 10%), 0 5px 21.3px -4px rgb(0 0 0 / 12%), 0 12px 51px -4px rgb(0 0 0 / 16%);
}

#navbar .navbar-logo-bkgrd {
  opacity: 0;
  transition: opacity 800ms ease-in-out;
}

#navbar .navbar-logo-nobkgrd {
  opacity: 1;
  transition: opacity 800ms ease-in-out;
}

#navbar.bkgrd .navbar-logo-bkgrd {
  opacity: 1;
}

#navbar.bkgrd .navbar-logo-nobkgrd {
  opacity: 0;
}


/***FOOTER ***************************************************************/
#brx-footer > .brxe-section:first-child, body[data-builder-mode="custom"] #brx-footer > .brxe-section {
    padding: var(--section-space-m) var(--space-m);
}

#brx-footer > .brxe-section:nth-child(2), body[data-builder-mode="custom"] #brx-footer > .brxe-section[data-index="1"] {
    padding: var(--space-xs) var(--space-m);
}

#brx-footer .brxe-text-basic a:after, #brx-footer .brxe-text a:after, #brx-footer a.brxe-text-basic:after {
    background-color: rgba(255,255,255,0.3);
    content: "";
    position: absolute;
    bottom: 2px;
    width: 100%;
    height: 1px;
    left: 0;
}

#brx-footer a.brxe-text-basic:not(.noanimborder):before {
    content: "";
    position: absolute;
    bottom: 1px;
    width: 0;
    height: 2px;
    transition: all 0.2s ease-in-out;
    opacity: 0;
    background: #fff;
    left: 0;
    z-index: 1;
}

@media only screen and (max-width: 768px) {
    #brx-footer > .brxe-section:first-child, body[data-builder-mode="custom"] #brx-footer > .brxe-section {
        padding: var(--space-l) var(--space-s);
    }
}

/**************************************************************************/
/* Automatic.CSS fixes ****************************************************/
/**************************************************************************/
[class*=rounded--] {
    overflow: hidden;
}

[class*=grid--], .brxe-container[class*=grid--] {
    align-items: stretch;
}

main .brxe-section {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;    
}

main .brxe-section.pad--none {
    padding: 0;
}

.brxe-container.gap--s, .brxe-block.gap--s {
    row-gap: var(--space-s);
}

.brxe-container.gap--m, .brxe-block.gap--m {
    row-gap: var(--space-m);
}

.brxe-container.gap--l, .brxe-block.gap--l {
    row-gap: var(--space-l);
}

.brxe-container.gap--xl, .brxe-block.gap--xl {
    row-gap: var(--space-xl);
}

.brxe-container.gap--xxl, .brxe-block.gap--xxl {
    row-gap: var(--space-xxl);
}

main .brxe-section.pad-section--none, main .brxe-container.pad--none, header .brxe-section.pad-section--none, header .brxe-container.pad--none, footer .brxe-section.pad-section--none, footer .brxe-section.pad--none {
    padding: 0;
}

.brxe-container.width--full {
    max-width: 100%;
} 

main .brxe-section.pad-section--l {
    padding: var(--section-space-l) var(--space-l);
}

main .brxe-section.pad-section--xl {
    padding: var(--section-space-xl) var(--space-xl);
}

main .brxe-section.pad-section--s {
    padding: var(--section-space-s) var(--space-s);
}

.brx-wrap {
    font-size: var(--text-m) !important;
    line-height: 1.6 !important;
}

main .bricks-notices-wrapper.brx-container {
    padding-top: 0;
    padding-bottom: 0;
}


/**************************************************************************/
/* Bricks default overrides ***********************************************/
/**************************************************************************/

:where(figure) {
    margin: 0;
}

.bricks-button.outline {
    background-color: transparent;
}

/* <p> tag added to simple text element in Bricks 1.7.1 */
.brxe-text-basic p, p.brxe-text-basic {
    margin-bottom: 0;
}

p {
  max-inline-size: 65;
}

:where(p) {
  margin-block-end: 0;
}

.brxe-text ul li {
    margin-block-start: 0;
}

.brxe-section {
    position: relative;
}

ul.list--none, ol.list--none, .list--none > ul, .list--none > ol {
  list-style: none;
  padding-inline-start: 0;
  list-style-type: none;
  -webkit-margin-before: 0em;
  margin-block-start: 0em;
  margin-block-end: 0;
}


/* Menu fixes */

#brx-header .brx-dropdown-content {
    padding: var(--space-s);
    min-width: fit-content;
}

#brx-header .brx-dropdown-content li a {
    white-space: nowrap;
}

/* Do not show animated link underline for dropdown menus */
#brx-header .brx-dropdown-content li a:before {
    display: none;
}


.brx-has-megamenu .brxe-dropdown, .brx-has-megamenu .brx-nav-nested-items, .brx-has-megamenu .brxe-nav-nested {
    position: static;
}

.brx-submenu-toggle a {
    padding-right: 0 !important;
}

.brx-submenu-toggle button {
    padding-left: 0 !important;
}

.brxe-nav-nested:not(.brx-open) .brx-nav-nested-items>.brxe-dropdown:not([data-toggle=click]):hover:before {
    left: 0;
}


[class*="grid--"] {
  display: grid !important;
  inline-size: 100%;
}


/* To prevent the weird scroll up issue when clicking radio buttons or checkboxes in Bricks form elements */
.brxe-form li {
  position: relative;
}

/* Mobile menu fixes */
@media only screen and (max-width: 991px) {
    #brx-header .brx-nav-nested-items {
        position: fixed;
        justify-content: center;
    }
}



/* ******************************* */

#brx-header .brx-dropdown-content {
    position: absolute;
}

body.bricks-is-frontend:focus {
    outline: none;
}


#brx-content .wp-block-pullquote {
    padding: 2rem 1rem;
}

#brx-content .wp-block-pullquote p {
    font-size: inherit;
}


.brxe-divider.horizontal {
    width: 100%;
}

.bricks-button {
    transition: all 200ms ease-out;
}

.bricks-button:hover {
    transform: scale(1.05);
}

.bricks-button:not(.outline):hover {
    box-shadow: 0 3px 12px 0 rgba(0,0,0,0.3);
}

.bricks-element-svg , .bricks-element-svg div{
    display: flex;
}

.x-modal_close:focus {
    outline: none !important;
}

.brxe-button {
    cursor: pointer;
}

body.bricks-is-frontend.admin-bar #brx-header.sticky {
    top:0 !important;
}

body.bricks-is-frontend.admin-bar {
    padding-top: 0 !important;
}

fieldset {
    margin-bottom: 0 !important;
}

.x-tabs_content {
    row-gap: 0;
}

.x-tabs_tab:focus, input:focus {
    outline: none !important;
}

.brxe-xtableofcontents {
    overflow-x: hidden;
    overflow-y: scroll;
    max-height: calc(100vh - var(--section-space-m) - var(--space-m));
}

.brxe-form .form-group input:not([type=submit]) {
    border-width: 2px;
}

.brxe-form .form-group input:not([type=submit]):focus {
    border-color: var(--primary);
}

.x-tabs_content {
    height: auto !important;
}

.brxe-form .message a {
    text-decoration: underline;
}

.brx-loading-animation {
    width: 100%;
    height: 100%;
    position: absolute;
    background-color: var(--bg-color);
    opacity: 0.3;
    margin: 0;
    padding: 0;    
}

body.bricks-is-frontend.admin-bar #brx-header.brx-sticky, body.bricks-is-frontend.admin-bar.brx-header-left #brx-header, body.bricks-is-frontend.admin-bar.brx-header-right #brx-header {
    top: 0 !important;
}


/* Post navigation */

.bricks-swiper-button-prev {
  position: absolute;
  left: -38px;
}

.bricks-swiper-button-next {
  position: absolute;
  right: -38px;
}

.brxe-post-navigation {
    flex-direction: row !important;
    flex-wrap: nowrap;
}

.brxe-post-navigation .title {
      white-space: normal !important;
}


/* WooCommerce **************************************************/
.woocommerce-variation-add-to-cart, .bricks-element-product-add-to-cart .cart {
    display: flex;
    align-items: center;    
}

.woocommerce-EditAccountForm .woocommerce-form-row label span {
    font-size: 13px;
    display: block;
    color: #999;
}

form.cart .quantity {
    margin-bottom: 0;
}

.woocommerce form.cart {
    display: flex;
    column-gap: 2rem;
    margin-top: 2rem;
}

.woocommerce form.cart .single_add_to_cart_button, .woocommerce .product .woocommerce-variation-add-to-cart .single_add_to_cart_button, .woocommerce .product .brxe-product-add-to-cart .single_add_to_cart_button {
    padding: 10px 24px;
    border-radius: 4px;
    background-color: var(--primary);
    color: #fff;
    transition: all 200ms ease-out;
    justify-content: flex-start;
    width: auto;
    min-width: auto;
}

.woocommerce form.cart .single_add_to_cart_button:not(.disabled):hover, .woocommerce .product .woocommerce-variation-add-to-cart .single_add_to_cart_button:not(.disabled):hover, .woocommerce .product .bricks-element-product-add-to-cart .single_add_to_cart_button:not(.disabled):hover {
    background-color: var(--secondary);
    transform: scale(1.02);
}

.woocommerce-variation-add-to-cart.woocommerce-variation-add-to-cart-disabled {
    opacity: 0.15;
}

.upsells .product {
    display: block;
}

.bricks-element-product-gallery {
    max-width: 100%;
}

.zoomImg {
    width: 1200px !important;
    height: 1200px !important;
}



/*******************************************************************/
/* UTILITY CLASSES CSS *********************************************/
/*******************************************************************/

.nomargin, .nomargin p {
  margin-bottom: 0 !important;
}

.text-shadow {
  text-shadow: 0 0 5px rgba(0,0,0,0.8) ;
}

#brx-content .bkgrd-image, #brx-content a.bkgrd-image img, #brx-content .bkgrd-image img, #brx-footer .bkgrd-image img, #brx-header .bkgrd-image img, #brx-footer .bkgrd-image, #brx-header .bkgrd-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  position: absolute !important;
  top: 0;
  left: 0;
  z-index: 0;
}

.brxe-text-basic a, .brxe-text a, a.border, .brxe-text-link {
    position: relative;
    z-index: 0;
}

.brxe-text-basic:not(.noanimborder) a:before, .brxe-text:not(.noanimborder) a:before, a.border:before, a.brxe-text-basic:not(.noanimborder):before, .brxe-text-link:not(.noanimborder):after  {
    content: "";
    position: absolute;
    bottom: 2px;
    width: 0;
    height: 3px;
    transition: all 0.2s ease-in-out;
    opacity: 0;
    background: var(--primary);
    left: 0;
    z-index: 1;
}

.brxe-text-link:not(.noanimborder):after {
    bottom: -4px;
}

.brxe-text-basic.reverse:not(.noanimborder) a:before, .brxe-text.reverse:not(.noanimborder) a:before, a.border.reverse:before, a.brxe-text-basic.reverse:not(.noanimborder):before, .brxe-text-link.reverse:not(.noanimborder):after  {
    background: #fff;
}

.brxe-text-basic.reverse, .brxe-text.reverse, .brxe-text-link.reverse {
     color: #fff;
}

.brxe-text-basic:not(.noanimborder) a:hover:before, .brxe-text:not(.noanimborder) a:hover:before, a.border:hover:before, a.brxe-text-basic:not(.noanimborder):hover:before, #brx-footer a.brxe-text-basic:not(.noanimborder):hover:before, .brxe-text-link:not(.noanimborder):hover:after {
    width: 100%;
    opacity: 1;
}

.no-link-color a {
  color: inherit !important;
}

.more-button.bricks-button {
    line-height:1.2;
    transition: all 200ms ease-out;
}

.more-button.bricks-button.sm {
    padding: 1.2rem 2.6rem;
}

.more-button.bricks-button.md {
    padding: 1.6rem 3.2rem;
}

.more-button.bricks-button.lg {
    padding: 2rem 4.2rem;
}

.more-button.bricks-button svg {
  transition: margin 200ms ease-out; 
}

.more-button.bricks-button.sm:hover {
    padding-right: 1.6rem;
}

.more-button.bricks-button:hover svg {
    margin-left: 1rem;
}


.more-button.bricks-button.md:hover {
    padding-right: 2.2rem;
}

.more-button.bricks-button.lg:hover {
    padding-right: 3.2rem;
}

.testimonial .quote-open, .testimonial .quote-close {
    fill: var(--primary);
    opacity: 0.3;
    width: 42px;
    height: auto;
    position: absolute;
} 

.testimonial .quote-open {
    top: -2rem;
    left: -2rem;    
}

.testimonial .quote-close {
    bottom: -1rem;
    right: -2rem;
}

.inside-grow {
    overflow: hidden;
}

.inside-grow img {
    transition: transform 400ms ease-out;
}

.inside-grow:hover img {
    transform: scale(1.1); 
}

.balance, .balance p {
    text-wrap: balance;
}

.icon-list {
  --icon-url: url("/wp-content/uploads/circle-check.svg");
  --icon-color: var(--accent);
  --icon-size: 1em;
}

.icon-list ul {
	margin: 0;
  padding:0;
  list-style: none;
}

.icon-list li:not(:last-child) {
	margin-bottom: 1rem;
}

.icon-list li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.5em;
}

.icon-list li:before {
    content: "";
    display: flex;
    width: var(--icon-size);
    height: var(--icon-size);
     background-color: var(--icon-color);
     -webkit-mask-image: var(--icon-url);
     mask-image: var(--icon-url);
    mask-size: cover;
    translate: 0 .5ex;
}

.golden-ratio {
    flex-direction: row;
}

.golden-ratio > .brxe-block:nth-child(1) {
    width: 38.2%;
}

.golden-ratio > .brxe-block:nth-child(2) {
    width: 61.8%;
}

.golden-ratio.bigleft > .brxe-block:nth-child(1) {
    width: 61.8%;
}

.golden-ratio.bigleft > .brxe-block:nth-child(2) {
    width: 38.2%;
}

@media only screen and (max-width: 768px) {
    .golden-ratio {
        flex-direction: column;
    }

    .golden-ratio > .brxe-block {
        width: 100% !important;
    }
}

.list-nomargin ul, .list-nomargin ol {
    margin: 0;
    padding-left: 1em;
}

.list-nomargin li {
    margin-bottom: 3px;
}

.glassmorphism {
    background-color: rgba(255,255,255,0.7);
    backdrop-filter: blur(6px);
}

html {
  font-size: 62.5% !important;
}
*, *::before, *::after {
  box-sizing: border-box;
}
body {
  min-block-size: 100vh;
}
input, button, textarea, select {
  font: inherit;
}
.focus-parent:focus-within {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}
.focus-parent :focus {
  outline: none !important;
  box-shadow: none !important;
}
.focus-parent--shadow:focus-within {
  box-shadow: 0 0 0 var(--focus-width) var(--focus-color);
}
.focus-parent--shadow :focus {
  outline: none !important;
  box-shadow: none !important;
}
.focus-parent--outline:focus-within {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}
.focus-parent--outline :focus {
  outline: none !important;
  box-shadow: none !important;
}

/* an absolutely-positioned element stretches to fill the nearest ancestor with a non-static position. The link's ::after pseudo-element gets position: absolute; inset: 0, and since the link itself stays position: static, the browser keeps looking up the tree until it finds clickable-parent (which you've set to position: relative). That ancestor — whether it's the direct parent, grandparent, or further up — becomes the containing block, and the invisible pseudo-element covers it edge to edge. The real link text underneath stays exactly where you put it; you just get a giant transparent click catcher layered over the whole region. */

/* For nested interactive elements (a "favorite" button, a second link, anything inside the card that needs its own click behavior), add a keep-clickable class to it — position: relative; z-index: 2 puts it above the stretched overlay so it intercepts clicks before they reach the link. */


.clickable-parent {
  position: relative;
  cursor: pointer;
}

.child-link {
    position: static;
}

.child-link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.clickable-parent .keep-clickable {
  position: relative;
  z-index: 2;
}


figure[class*="overlay--"]::before {
  z-index: 0;
}

p:where(:only-of-type), li:not(nav li, nav a), blockquote {
  text-wrap: auto;
  text-wrap: pretty;
}

.balance {
  text-wrap: balance;
}
.balance p, .balance li, .balance blockquote, .balance h1, .balance h2, .balance h3, .balance h4, .balance h5, .balance h6 {
  text-wrap: balance;
}
.unbalance {
  text-wrap: auto;
  text-wrap: pretty;
}
.unbalance p, .unbalance li, .unbalance blockquote, .unbalance h1, .unbalance h2, .unbalance h3, .unbalance h4, .unbalance h5, .unbalance h6 {
  text-wrap: auto;
  text-wrap: pretty;
}




/*** LAYOUT *************************************************************/
.sticky-footer {
    position: sticky;
    bottom: 0;
    left: 0;
    z-index: -1;
    margin-bottom:0;
}

@media (min-width: 1360px) {
  .breakout--full {
    inline-size: 100vw !important;
    max-inline-size: 100vw !important;
    margin-inline: calc(-50vw + 50%) !important;
    align-self: flex-start;
  }
}
@media (max-width: 1360px) {
  [class*="breakout--"]:not(.breakout--full) {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    margin: 0 !important;
  }
}



/* FORMS ********************************/

.center-submit {
    display: flex;
    justify-content: center;    
}

.center-submit button {
    width: auto !important;
}

.wsf-form .wsf-button {
    padding: 1.2rem 2.6rem !important;
}

fieldset.wsf-section {
    border: none;
}

.wsf-form .wsf-field-wrapper.bottom-20 {
    margin-bottom: 20px;
}


#brx-content input[type=checkbox].wsf-field + label.wsf-label {
    cursor: pointer;
}

#brx-content .wsf-field-wrapper[data-type='texteditor'], .wsf-field-wrapper[data-type='message'] {
    margin-bottom: 1rem;
}

.wsf-field-wrapper.center > div:not(.wsf-invalid-feedback), .wsf-field-wrapper.center > div > div {
    display: flex;
    justify-content: center;
    position: relaive;
}

.wsf-bottom {
    margin-bottom: 0 !important;
}

.wsf-field-wrapper[data-type="radio"] div[role="radiogroup"] label {
  cursor: pointer;
}

.wsf-field-wrapper[data-type="radio"] > label {
    font-weight: bold;
}

.wsf-validated input[type=date].wsf-field:invalid, .wsf-validated input[type=datetime-local].wsf-field:invalid, .wsf-validated input[type=file].wsf-field:invalid, .wsf-validated input[type=month].wsf-field:invalid, .wsf-validated input[type=password].wsf-field:invalid, .wsf-validated input[type=search].wsf-field:invalid, .wsf-validated input[type=time].wsf-field:invalid, .wsf-validated input[type=week].wsf-field:invalid, .wsf-validated input[type=email].wsf-field:invalid, .wsf-validated input[type=number].wsf-field:invalid, .wsf-validated input[type=tel].wsf-field:invalid, .wsf-validated input[type=text].wsf-field:invalid, .wsf-validated input[type=url].wsf-field:invalid, .wsf-validated select.wsf-field:invalid, .wsf-validated textarea.wsf-field:invalid {
    border-color: #bb0000 !important;
}

/* MEDIA QUERIES ***************************************/

@media only screen and (max-width: 479px) {
    #brx-header > .brxe-section {
        padding: var(--space-xs) var(--space-xs) var(--space-xs) var(--space-xs);
    }

    .brxe-post-navigation {
        flex-wrap: wrap;
    }

    /* ***MOBILE MENU***  */

    #main-nav .brx-nav-nested-items {
        transform: translateX(100%);
    }

    #main-nav.brx-open .brx-nav-nested-items {
        transform: translateX(0);
    }

} 