/* =============================================================================
   RYZN skin — ryzn-homepage.html
   Tokens live in style.css. This file matches header/footer/type/buttons
   and homepage modules without Elementor widget hashes.
   ============================================================================= */

.elementor-kit-12,
body.elementor-kit-12 {
    --e-global-color-primary: #091522;
    --e-global-color-secondary: #e8efea;
    --e-global-color-text: #173037;
    --e-global-color-accent: #9bd5cf;
    --e-global-color-primary-dark: #284b52;
    --e-global-color-secondary-dark: #091522;
    --e-global-color-4214969: #173037;
    --e-global-color-bg-white: #ffffff;
    --e-global-color-da4372a: #091522;
    --e-global-color-border: #ffffff;
    --e-global-color-neutral: #e8efea;
    --e-global-color-0390a14: #e8efea;
    --e-global-color-e45a816: #9bd5cf;
    --e-global-color-ba1c9c9: #091522;
}

html {
    background-color: var(--paper, #fafbf8);
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
}

body {
    background-color: var(--paper, #fafbf8) !important;
    color: var(--ink, #173037);
    font: 16px/1.6 Inter, Arial, sans-serif;
}

*:focus-visible {
    outline: 3px solid #468b86;
    outline-offset: 5px;
}

h1, h2 {
    font-family: Raleway, Inter, Arial, sans-serif;
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.08;
}

h3 {
    font-family: Inter, Arial, sans-serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: -0.025em;
}

h1 em, h2 em, h3 em,
.elementor-heading-title em,
.elementor-heading-title i {
    color: var(--aqua, #9bd5cf);
    font-style: normal;
    font-weight: inherit;
}

/* Inter !important on `a, span` breaks WP / Elementor toolbar icon fonts */
#wpadminbar,
#wpadminbar a,
#wpadminbar span,
#wpadminbar button {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
}

#wpadminbar .ab-icon,
#wpadminbar .ab-icon:before,
#wpadminbar .ab-item:before,
#wpadminbar #wp-admin-bar-wp-logo > .ab-item:before {
    font-family: dashicons !important;
    font-weight: 400 !important;
    font-style: normal !important;
}

#wpadminbar .eicon,
#wpadminbar [class^="eicon-"],
#wpadminbar [class*=" eicon-"],
#wpadminbar [class^="eicon-"]:before,
#wpadminbar [class*=" eicon-"]:before {
    font-family: eicons !important;
    font-weight: 400 !important;
    font-style: normal !important;
}

/* RYZN does not ship BMI / goal / cost calculators */
.nova-calculators,
.elementor-widget:has(.nova-calculators) {
    display: none !important;
}

/* =============================================================================
   BUTTONS — 6px radius, aqua primary, navy product CTA
   ============================================================================= */

.btn:not(.elementor-widget),
a.btn,
button.btn {
    min-height: 48px;
    padding: 12px 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    border-radius: 6px;
    background: var(--aqua, #9bd5cf);
    color: var(--navy, #091522);
    font-family: Inter, Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.2s, transform 0.2s;
}

.btn:not(.elementor-widget):hover,
a.btn:hover,
button.btn:hover {
    background: #bce8df;
    color: var(--navy, #091522);
    transform: translateY(-2px);
}

.btn.secondary:not(.elementor-widget),
a.btn.secondary,
button.btn.secondary,
.btn.btn-secondary:not(.elementor-widget) {
    background: #213a42;
    color: #e7f3ef;
    border-color: #617a7f;
}

/* Elementor puts html classes on the widget, not the <a> — keep one fill */
.elementor-widget-button.btn,
.elementor-widget-button.primary,
.elementor-widget-button.secondary {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    min-height: 0 !important;
    box-shadow: none !important;
}

.elementor-widget-button.btn .elementor-button,
.elementor-widget-button.primary .elementor-button,
.elementor-widget-button.secondary .elementor-button {
    min-height: 48px;
    padding: 12px 22px !important;
}

.elementor-widget-button.secondary .elementor-button {
    background: #213a42 !important;
    color: #e7f3ef !important;
    border: 1px solid #617a7f !important;
}

.elementor-widget-button.secondary .elementor-button:hover {
    background: #284b52 !important;
    color: #e7f3ef !important;
    border-color: #617a7f !important;
}

.btn.light {
    background: var(--aqua, #9bd5cf);
    color: var(--navy, #091522);
}

/* Elementor Advanced → CSS Classes: custom-link — text link, not a CTA */

.nova-btn .elementor-button,
.nova-btn-primary .elementor-button,
.elementor-widget-button:not(.custom-link) .elementor-button,
.woocommerce a.button,
.woocommerce button.button {
    border-radius: 6px !important;
}

.nova-btn-primary .elementor-button,
.elementor-location-header .nova-btn-primary .elementor-button,
.elementor-element-8b687be .elementor-button,
.elementor-element-d110cf8 .elementor-button {
    background-color: var(--aqua, #9bd5cf) !important;
    color: var(--navy, #091522) !important;
    border: 1px solid transparent !important;
    border-radius: 6px !important;
    min-height: 48px;
    padding: 12px 22px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}

.nova-btn-primary .elementor-button:hover,
.elementor-element-8b687be .elementor-button:hover,
.elementor-element-d110cf8 .elementor-button:hover {
    background-color: #bce8df !important;
    color: var(--navy, #091522) !important;
}

html body .elementor .elementor-widget-button.nova-btn-white .elementor-button,
a.nova-btn-white,
button.nova-btn-white {
    background-color: var(--aqua, #9bd5cf) !important;
    border: 1px solid transparent !important;
    color: var(--navy, #091522) !important;
    border-radius: 6px !important;
}

html body .elementor .elementor-widget-button.nova-btn-white .elementor-button:hover {
    background-color: #bce8df !important;
    color: var(--navy, #091522) !important;
}

.nova-btn-secondary .elementor-button {
    background: #213a42 !important;
    color: #e7f3ef !important;
    border: 1px solid #617a7f !important;
    border-radius: 6px !important;
}

/* =============================================================================
   HEADER — navy, 82px, light wordmark
   ============================================================================= */

.elementor-location-header,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner,
.elementor-location-header .e-con-boxed {
    background-color: var(--navy, #091522) !important;
    background-image: none !important;
}

.elementor-location-header .nova-header-banner {
    display: none !important;
}

.elementor-location-header .nova-header-banner,
.elementor-location-header .nova-header-banner p,
.elementor-location-header .nova-header-banner a,
.elementor-location-header .nova-header-banner span {
    color: #fff !important;
}

.elementor-location-header > .e-con {
    --position: relative !important;
    position: relative !important;
    max-width: 1400px;
    margin: auto;
    --padding-top: 0px;
    --padding-right: 0px;
    --padding-bottom: 0px;
    --padding-left: 0px;
    padding: 0 !important;
}

.elementor-location-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 30;
    width: 100% !important;
    max-width: 100% !important;
}

.elementor-location-header .e-con-inner {
    max-width: none;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.elementor-location-header .elementor-nav-menu--main .elementor-nav-menu {
    gap: 38px;
}

.elementor-location-header .elementor-nav-menu .menu-item-home {
    display: none !important;
}

body.home .elementor-location-single .elementor-widget-nav-menu {
    display: none !important;
}

.ryzn-header-tools {
    display: flex;
    align-items: center;
    gap: 8px;
}

.icon-btn {
    border: 0;
    background: transparent !important;
    color: #fff !important;
    padding: 8px;
    display: grid;
    place-items: center;
    cursor: pointer;
}

.icon-btn .icon {
    width: 24px;
    height: 24px;
}

.ryzn-header-cart {
    position: relative;
}

.elementor-location-header .ryzn-header-cart svg,
.elementor-location-header #cartButton svg.icon {
    width: 24px;
    height: 24px;
    display: block;
}

.elementor-location-header .ryzn-header-cart svg path,
.elementor-location-header .ryzn-header-cart[data-nova-cart-button] svg path,
.elementor-location-header .ryzn-header-cart[data-nova-cart-button]:hover svg path,
.elementor-location-header .ryzn-header-cart[data-nova-cart-button]:focus-visible svg path,
.elementor-location-header .ryzn-header-cart[data-nova-cart-button]:active svg path {
    stroke: #fff !important;
    fill: none !important;
}

.elementor-location-header .elementor-menu-toggle,
.elementor-location-header .elementor-menu-toggle:hover,
.elementor-location-header .elementor-menu-toggle:focus,
.elementor-location-header .elementor-menu-toggle:active {
    color: #fff !important;
}

.elementor-location-header .elementor-menu-toggle svg,
.elementor-location-header .elementor-menu-toggle svg path,
.elementor-location-header .elementor-menu-toggle:hover svg,
.elementor-location-header .elementor-menu-toggle:hover svg path,
.elementor-location-header .elementor-menu-toggle .e-font-icon-svg {
    fill: #fff !important;
    stroke: #fff !important;
    color: #fff !important;
}

.elementor-location-header .elementor-element-8a6e785:not(.nova-mobile-nav-cta__item) .elementor-button,
.elementor-location-header [data-nova-cart-button]:not(.nova-mobile-nav-cta__cart-link) {
    background: transparent !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: none !important;
    min-width: 40px;
    padding: 8px !important;
}

.elementor-location-header .elementor-element-8a6e785 .elementor-button svg path,
.elementor-location-header [data-nova-cart-button]:not(.nova-mobile-nav-cta__cart-link) svg path,
.elementor-location-header #cartButton svg path,
.elementor-location-header .nova-cart-button:not(.nova-mobile-nav-cta__cart-link) svg path,
.elementor-location-header .elementor-element-8a6e785 .elementor-button:hover svg path,
.elementor-location-header [data-nova-cart-button]:not(.nova-mobile-nav-cta__cart-link):hover svg path,
.elementor-location-header #cartButton:hover svg path,
.elementor-location-header .nova-cart-button:not(.nova-mobile-nav-cta__cart-link):hover svg path {
    stroke: #fff !important;
    fill: none !important;
}

.elementor-location-header .elementor-nav-menu--dropdown {
    background: var(--navy, #091522);
    color: #fff;
}

.elementor-location-header .elementor-nav-menu--dropdown .nova-mobile-nav-cta {
    border-top: 1px solid #ffffff20;
}

/* Hide the empty Elementor cart widget once the header-tools bag icon is present. */
.elementor-location-header:has(.ryzn-header-cart) .elementor-element-8a6e785:not(.nova-mobile-nav-cta__item) {
    display: none !important;
}

@media (max-width: 760px) {
    .elementor-location-header .ryzn-header-tools {
        display: none !important;
    }

    .elementor-location-header .elementor-nav-menu--dropdown .elementor-element-8a6e785,
    .elementor-location-header .elementor-nav-menu--dropdown .nova-mobile-nav-cta__item--shop {
        display: block !important;
    }
}

/* Shop catalog — same 1400 wrap as header. Do not constrain Product Hero. */
body.woocommerce-shop .nova-shop-wrap,
[data-nova-shop].nova-shop-wrap {
    max-width: 1400px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Product Hero (template 306) — undo theme type hammer so editor typography wins. */
.elementor-306 .elementor-widget-heading .elementor-heading-title {
    font-family: "Inter", Sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: 0;
}

/* Contact Static Block (template 39) — editor typography / tracking wins. */
.elementor-39 .elementor-widget-heading .elementor-heading-title {
    letter-spacing: normal;
    line-height: normal;
}

.elementor-306 .elementor-widget-text-editor,
.elementor-306 .elementor-widget-text-editor p {
    font-family: "Roboto", Sans-serif !important;
}

/* =============================================================================
   FOOTER — navy
   ============================================================================= */

.elementor-location-footer,
.elementor-location-footer .e-con,
.elementor-92 .elementor-element.elementor-element-f0001aa,
.elementor-92 .elementor-element.elementor-element-f0001aa:not(.elementor-motion-effects-element-type-background),
.elementor-92 .elementor-element.elementor-element-f0001aa > .elementor-motion-effects-container > .elementor-motion-effects-layer {
    background-color: var(--navy, #091522) !important;
    background-image: none !important;
    color: #d5e3df;
}

.elementor-location-footer {
    border-top: 0;
    padding: 64px 0 30px;
}

@media (max-width: 1024px) {
    .elementor-location-footer {
        padding: 0;
    }
}

.elementor-location-footer .elementor-element-f0002bb {
    display: grid !important;
    grid-template-columns: 1.2fr 0.8fr 0.8fr 1.2fr;
    gap: 35px !important;
    align-items: start !important;
    justify-content: stretch !important;
    flex-wrap: nowrap !important;
}

.elementor-location-footer .elementor-element-4e1fcb8,
.elementor-location-footer .elementor-element-4e1fcb8.e-div-block-base {
    max-width: none;
    gap: 0 !important;
}

.elementor-location-footer .elementor-widget-text-editor,
.elementor-location-footer .elementor-widget-text-editor p,
.elementor-location-footer p {
    color: #aebfbe !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    margin: 25px 0 0 !important;
}

.elementor-location-footer .elementor-social-icon,
.elementor-location-footer .elementor-social-icon svg path {
    color: #d5e3df !important;
    fill: #d5e3df !important;
    background: transparent !important;
}

.elementor-location-footer .elementor-nav-menu a,
.elementor-location-footer .elementor-nav-menu--main .elementor-nav-menu a {
    color: #d5e3df !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    margin: 12px 0 !important;
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    white-space: normal !important;
    overflow-wrap: break-word;
}

.elementor-location-footer ul.elementor-nav-menu > li.menu-item-has-children > a,
.elementor-location-footer li.menu-item-has-children > a {
    color: #d5e3df !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    margin: 0 0 10px !important;
    text-transform: uppercase;
}

.elementor-location-footer .elementor-nav-menu a:hover {
    color: var(--aqua, #9bd5cf) !important;
    text-decoration: none;
}

.elementor-location-footer .elementor-element-f0004dd {
    grid-column: 2 / 4;
    margin-left: 0 !important;
    align-self: start !important;
}

.elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main > .elementor-nav-menu {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: end !important;
    gap: 35px !important;
    width: 100% !important;
}

.elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main > .elementor-nav-menu::before,
.elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main > .elementor-nav-menu::after {
    content: none !important;
    display: none !important;
}

.elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main .sub-menu a {
    margin: 8px 0 !important;
}

/* Newsletter — match ryzn-homepage.html .newsletter / .email-row */
#footerForm {
    grid-column: 4;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

#footerForm h3,
#footerForm .elementor-heading-title {
    font-family: Inter, Arial, sans-serif;
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.2;
    color: #d5e3df;
    margin: 0 0 12px;
    text-transform: none;
}

#footerForm p,
#footerForm .e-paragraph-base {
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    color: #aebfbe !important;
    margin: 0 0 20px !important;
}

#footerForm .ff-t-container,
#footerForm .ff-column-container {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    width: 100%;
}

#footerForm .ff-t-cell {
    flex: 1 1 auto !important;
    flex-basis: auto !important;
    width: 100% !important;
    max-width: 100% !important;
}

#footerForm .ff-el-group {
    margin: 0 !important;
}

#footerForm .ff-t-column-1 .ff-el-group:not(.ff_submit_btn_wrapper)::before {
    content: "Email address";
    display: block;
    font-size: 16px;
    color: #d5e3df;
    margin-bottom: 8px;
}

#footerForm input[type="email"],
#footerForm .ff-el-form-control {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    padding: 14px;
    background: #ffffff08;
    border: 1px solid #617579;
    border-radius: 5px;
    color: #fff;
    font-size: 16px;
    font-family: Inter, Arial, sans-serif;
    line-height: 1.4;
    box-shadow: none;
}

#footerForm input[type="email"]::placeholder,
#footerForm .ff-el-form-control::placeholder {
    color: #aebfbe;
    opacity: 1;
}

#footerForm input[type="email"]:focus,
#footerForm .ff-el-form-control:focus {
    outline: 3px solid #468b86;
    outline-offset: 5px;
    border-color: #617579;
}

#footerForm .ff-btn-submit,
#footerForm button[type="submit"] {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0;
    background: var(--aqua, #9bd5cf) !important;
    color: var(--navy, #091522) !important;
    border: 1px solid transparent !important;
    border-radius: 5px !important;
    padding: 14px !important;
    margin: 0 !important;
    text-align: center !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    font-family: Inter, Arial, sans-serif !important;
    line-height: 1.2 !important;
    box-shadow: none !important;
}

#footerForm .ff-btn-submit:hover,
#footerForm button[type="submit"]:hover {
    background: #bce8df !important;
    color: var(--navy, #091522) !important;
    border-color: transparent !important;
    transform: translateY(-2px);
}

#footerForm .ff-message-success,
#footerForm .ff-el-is-msg,
#footerForm .ff-form-msg,
#footerForm .ff-errors-in-stack {
    margin-top: 15px;
    color: var(--aqua, #9bd5cf) !important;
}

#footerForm fieldset {
    min-inline-size: 0;
    width: 100%;
}

.elementor-location-footer .elementor-element-f0010dd {
    border-top: 1px solid #ffffff20;
    margin-top: 50px;
    padding-top: 25px !important;
}

.elementor-location-footer .elementor-element-f0011ee .elementor-heading-title,
.elementor-location-footer .elementor-element-f0011ee p {
    font-size: 16px !important;
    color: #d5e3df !important;
}

.elementor-location-footer .elementor-element-f0012ff .elementor-nav-menu {
    justify-content: flex-end;
    gap: 20px !important;
}

.elementor-location-footer .elementor-element-f0012ff .elementor-nav-menu a {
    font-size: 16px !important;
    color: #d5e3df !important;
    margin: 0 !important;
}

.elementor-location-footer .elementor-button,
.elementor-location-footer .elementor-widget-button .elementor-button {
    border-radius: 6px !important;
}

@media (max-width: 1100px) {
    .elementor-location-footer .elementor-element-f0002bb {
        grid-template-columns: 1fr 1fr;
    }

    .elementor-location-footer .elementor-element-4e1fcb8 {
        grid-column: 1 / -1;
    }

    .elementor-location-footer .elementor-element-f0004dd {
        grid-column: auto;
    }

    #footerForm {
        grid-column: auto;
    }
}

@media (max-width: 1024px) {
    .elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main > .elementor-nav-menu {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        justify-content: stretch !important;
        width: 100% !important;
    }

    .elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main > .elementor-nav-menu > li:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .elementor-location-footer .elementor-element-f0012ff .elementor-nav-menu {
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .elementor-location-footer .elementor-element-f0002bb {
        grid-template-columns: 1fr;
        gap: 32px 20px !important;
    }

    .elementor-location-footer .elementor-element-4e1fcb8,
    .elementor-location-footer .elementor-element-f0004dd,
    #footerForm {
        grid-column: 1 / -1;
    }

    .elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main > .elementor-nav-menu {
        grid-template-columns: 1fr;
    }

    .elementor-location-footer .elementor-element-f0004dd .elementor-nav-menu--main > .elementor-nav-menu > li:last-child:nth-child(odd) {
        grid-column: auto;
    }
}

/* =============================================================================
   TYPE — Elementor headings use Raleway 800 / Inter body
   ============================================================================= */

.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-heading h2.elementor-heading-title,
h1, h2 {
    font-family: Raleway, Inter, Arial, sans-serif;
    font-weight: 800;
}

.elementor-widget-text-editor,
.elementor-widget-text-editor p,
p, li, label, input, textarea, select, a, span,
.elementor-nav-menu .elementor-item,
.elementor-button-text,
button {
    font-family: Inter, Arial, sans-serif;
}

h2 {
    font-size: clamp(32px, 3.4vw, 46px);
}

/* =============================================================================
   HOMEPAGE HERO — #homepage-hero matches ryzn-homepage.html .hero-image
   + .hero-main:after (edge fade + navy overlay)
   ============================================================================= */

.hero {
    isolation: isolate;
    overflow: hidden;
}

.hero > .e-con-inner {
    position: relative;
    isolation: isolate;
    min-height: 570px;
    align-items: center;
}

#homepage-hero {
    position: absolute !important;
    inset: 0 -48px 0 20% !important;
    width: calc(80% + 48px) !important;
    max-width: none !important;
    height: 100% !important;
    flex: none !important;
    z-index: 0;
    pointer-events: none;
    background-image: url("../images/hero-athletes.webp") !important;
    background-size: cover !important;
    background-position: 70% center !important;
    background-repeat: no-repeat !important;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 25%, #000 88%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 25%, #000 88%, transparent);
}

#homepage-hero .elementor-widget-image,
#homepage-hero .elementor-widget-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 70% center;
}

.hero > .e-con-inner::after {
    content: "";
    position: absolute;
    inset: 0 -48px;
    z-index: 1;
    pointer-events: none;
    background:
        linear-gradient(90deg, var(--navy, #091522) 3%, #091522eb 25%, #09152255 56%, transparent 85%),
        linear-gradient(0deg, var(--navy, #091522), transparent 25%, transparent 80%, #09152280);
}

.hero .hero-copy {
    position: relative;
    z-index: 2;
    width: 59%;
    max-width: 59%;
}

@media (max-width: 1100px) {
    #homepage-hero {
        right: -28px !important;
        width: calc(80% + 28px) !important;
    }

    .hero > .e-con-inner::after {
        inset: 0 -28px;
    }

    .hero .hero-copy {
        width: 65%;
        max-width: 65%;
    }
}

@media (max-width: 760px) {
    .hero > .e-con-inner {
        display: block;
        min-height: 790px;
    }

    .hero .hero-copy {
        width: 100%;
        max-width: 100%;
        padding: 46px 0 0;
    }

    #homepage-hero {
        inset: auto -18px 0 !important;
        width: calc(100% + 36px) !important;
        height: 430px !important;
        background-position: 75% center !important;
        -webkit-mask-image: linear-gradient(0deg, transparent, #000 18%, #000 65%, transparent);
        mask-image: linear-gradient(0deg, transparent, #000 18%, #000 65%, transparent);
    }

    .hero > .e-con-inner::after {
        inset: 0 -18px;
        background: linear-gradient(0deg, var(--navy, #091522), transparent 25%, transparent 40%, var(--navy, #091522) 55%);
    }
}

/* =============================================================================
   CATEGORY GRID
   ============================================================================= */

.ryzn-categories {
    width: 100%;
    margin: 0;
    padding: 12px 0 64px;
    background: var(--navy, #091522);
}

.ryzn-categories__intro,
.ryzn-categories .category-intro {
    width: min(1320px, calc(100% - 96px));
    margin: 12px auto 24px;
}

.ryzn-categories__grid {
    width: min(1320px, calc(100% - 96px));
    margin: 0 auto;
}

.ryzn-categories__intro,
.category-intro {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    margin: 12px 0 24px;
    font-size: 16px;
}

.category-intro p {
    font-size: 16px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #fff;
    margin: 0;
}

.category-intro span {
    color: #b9cccb;
}

.category-grid,
.ryzn-categories__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
}

.category {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-radius: 14px;
    min-height: 235px;
    padding: 28px;
    display: flex;
    align-items: flex-end;
    background: #e8efea;
    color: var(--ink, #173037);
    text-decoration: none;
    transition: transform 0.25s;
}

.category:hover {
    transform: translateY(-4px);
    color: var(--ink, #173037);
}

.category-wide {
    grid-column: span 2;
    min-height: 245px;
}

.category img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
    transition: transform 0.4s;
}

.category:hover img {
    transform: scale(1.04);
}

.product-category:hover img {
    transform: rotate(9deg) translateY(-4px);
}

.category h2 {
    font-size: 24px;
    letter-spacing: -0.03em;
    max-width: 260px;
    margin: 0;
    color: inherit;
}

.category small {
    display: block;
    margin-bottom: 15px;
    line-height: 1.5;
    font-size: 16px;
}

.category > div {
    position: relative;
    max-width: 90%;
    z-index: 1;
}

.product-category {
    background: #c9dfd9;
}

.product-category img {
    inset: auto 28px -30px auto;
    width: 310px;
    max-width: none;
    height: 310px;
    object-fit: contain;
    mix-blend-mode: normal;
    mask-image: none;
    -webkit-mask-image: none;
    clip-path: url(#vial-bpc);
    transform: rotate(12deg);
}

.product-category > div {
    max-width: 52%;
}

.product-category.compact {
    background: #e1e9e1;
}

.compact img {
    width: 230px;
    height: 230px;
    right: -16px;
    bottom: 28px;
    transform: rotate(10deg);
    clip-path: url(#vial-glow);
}

.compact:last-child {
    background: #d8e5e4;
}

.compact:last-child img {
    clip-path: url(#vial-tirzepatide);
    width: 205px;
    height: 205px;
    right: -8px;
    bottom: 30px;
}

.compact > div {
    max-width: 100%;
}

.lifestyle {
    color: #fff;
    background: #203239;
}

.lifestyle:hover {
    color: #fff;
}

.lifestyle:after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(0deg, #091522ed, transparent 95%);
}

.lifestyle img {
    object-position: center 35%;
}

.category-wide.lifestyle img {
    object-position: 75% 45%;
}

.hormone img {
    object-position: 46% center;
}

@media (max-width: 760px) {
    .ryzn-categories {
        width: calc(100% - 36px);
    }

    .category-intro span {
        display: none;
    }

    .category-grid,
    .ryzn-categories__grid {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .category {
        min-height: 220px;
        padding: 16px;
    }

    .category h2 {
        font-size: 21px;
    }
}

/* =============================================================================
   HOMEPAGE ELEMENTOR CATEGORY CARDS (#motionCards)
   ============================================================================= */

#motionCards > .e-con > .e-con {
    transition: transform 0.25s ease;
}

#motionCards > .e-con > .e-con:hover {
    transform: translateY(-4px);
}

#motionCards .elementor-widget-image,
#motionCards .elementor-widget-image img {
    --e-transform-rotateZ: 0deg;
    border-radius: 0;
    filter: none;
    mask-image: none;
    -webkit-mask-image: none;
    mix-blend-mode: normal;
}

#motionCards .elementor-widget-image img {
    max-width: none;
    object-fit: contain;
    transition: transform 0.4s ease;
}

/* Large BPC vial — clip the image, not the transformed widget */
#rotatedimg.elementor-widget-image {
    clip-path: none;
    transform: none;
    width: 310px;
    height: 310px;
    inset: auto 28px -30px auto;
}

#rotatedimg.elementor-widget-image img {
    width: 310px;
    height: 310px;
    clip-path: url(#vial-bpc);
    transform: rotate(12deg);
}

#glowVial.elementor-widget-image {
    width: 230px;
    height: 230px;
    right: -16px;
    bottom: 28px;
    clip-path: none;
    transform: none;
}

#glowVial.elementor-widget-image img {
    width: 230px;
    height: 230px;
    clip-path: url(#vial-glow);
    transform: rotate(10deg);
}

#tirzVial.elementor-widget-image {
    width: 205px;
    height: 205px;
    right: -8px;
    bottom: 30px;
    clip-path: none;
    transform: none;
}

#tirzVial.elementor-widget-image img {
    width: 205px;
    height: 205px;
    clip-path: url(#vial-tirzepatide);
    transform: rotate(10deg);
}

#motionCards > .e-con > .e-con:hover #rotatedimg img,
#motionCards > .e-con > .e-con:hover #glowVial img,
#motionCards > .e-con > .e-con:hover #tirzVial img {
    transform: rotate(9deg) translateY(-4px);
}

@media (max-width: 760px) {
    #rotatedimg.elementor-widget-image,
    #rotatedimg.elementor-widget-image img {
        width: 285px;
        height: 285px;
        right: -18px;
        bottom: -27px;
    }

    #glowVial.elementor-widget-image,
    #glowVial.elementor-widget-image img {
        width: 220px;
        height: 220px;
        right: -25px;
        bottom: 28px;
    }

    #tirzVial.elementor-widget-image,
    #tirzVial.elementor-widget-image img {
        width: 195px;
        height: 195px;
        right: -20px;
        bottom: 29px;
    }
}

@media (prefers-reduced-motion: reduce) {
    #motionCards > .e-con > .e-con,
    #motionCards .elementor-widget-image img {
        transition: none;
    }

    #motionCards > .e-con > .e-con:hover {
        transform: none;
    }
}

/* =============================================================================
   TREATMENTS CAROUSEL
   ============================================================================= */

.nova-products.nova-products--ryzn {
    display: block;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

.nova-products--ryzn > .ryzn-wrap {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}

/* Same 1400 wrap as the site header, with a 20px side gutter at every breakpoint */
.e-con.e-parent:has(.nova-products--ryzn),
.e-con.e-parent:has([data-ryzn-products]) {
    max-width: 1400px !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    --padding-left: 20px;
    --padding-right: 20px;
    box-sizing: border-box !important;
}

.e-con.e-parent:has(.nova-products--ryzn) > .e-con,
.e-con.e-parent:has(.nova-products--ryzn) > .e-div-block-base,
.elementor-widget:has(.nova-products--ryzn),
.elementor-widget:has(.nova-products--ryzn) .elementor-widget-container,
.elementor-widget:has(.nova-products--ryzn) .elementor-shortcode {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.nova-products--ryzn .ryzn-products,
.nova-products--ryzn .products {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: 5px;
}

.nova-products--ryzn .ryzn-products::-webkit-scrollbar,
.nova-products--ryzn .products::-webkit-scrollbar {
    display: none;
}

.nova-products--ryzn .ryzn-product,
.nova-products--ryzn .product {
    flex: 0 0 calc((100% - 72px) / 4);
    min-width: 0;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
}

.nova-products--ryzn .product-art {
    aspect-ratio: 1 / 1;
    border-radius: 14px;
    background: #edf1ec;
    overflow: hidden;
    display: block;
}

.nova-products--ryzn .product-art img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.4s;
}

.nova-products--ryzn .ryzn-product:hover .product-art img {
    transform: scale(1.025);
}

.nova-products--ryzn .ryzn-product h3,
.nova-products--ryzn .product h3 {
    font-size: 24px;
    line-height: 1.2;
    margin-top: 22px;
    margin-bottom: 0;
    font-family: Inter, Arial, sans-serif;
    font-weight: 600;
    letter-spacing: -0.025em;
    color: var(--ink, #173037);
}

.nova-products--ryzn .ryzn-product p,
.nova-products--ryzn .product p {
    font-size: 16px;
    margin: 10px 0 20px;
    color: var(--muted, #566968);
}

.nova-products--ryzn .ryzn-product .btn,
.nova-products--ryzn .product .btn,
.nova-products--ryzn a.ryzn-product__btn {
    width: 100%;
    margin-top: auto;
    background: var(--navy, #091522);
    color: #fff;
    transform: none;
    border-radius: 6px;
}

.nova-products--ryzn .ryzn-product .btn:hover,
.nova-products--ryzn a.ryzn-product__btn:hover {
    background: #284b52;
    color: #fff;
    transform: none;
}

.nova-products--ryzn .slider-controls,
.nova-products--ryzn .ryzn-slider-controls {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 28px;
}

.nova-products--ryzn .slider-controls button,
.nova-products--ryzn .ryzn-slider-controls button {
    background: transparent;
    border: 1px solid #aebeba;
    padding: 10px 18px;
    font-size: 16px;
    border-radius: 5px;
    color: var(--ink, #173037);
    font-family: Inter, Arial, sans-serif;
}

.nova-products--ryzn .slider-controls button:disabled,
.nova-products--ryzn .ryzn-slider-controls button:disabled {
    opacity: 0.35;
    cursor: default;
}

@media (max-width: 1100px) {
    .nova-products--ryzn > .ryzn-wrap {
        width: 100%;
    }

    .nova-products--ryzn .slider-controls,
    .nova-products--ryzn .ryzn-slider-controls {
        display: flex;
    }

    .nova-products--ryzn .ryzn-product,
    .nova-products--ryzn .product {
        flex-basis: calc((100% - 24px) / 2);
    }

    .nova-products--ryzn .ryzn-product h3,
    .nova-products--ryzn .product h3 {
        font-size: 22px;
    }
}

@media (max-width: 760px) {
    .nova-products--ryzn > .ryzn-wrap {
        width: 100%;
    }

    .nova-products--ryzn .ryzn-product,
    .nova-products--ryzn .product {
        flex-basis: 82%;
        max-width: 390px;
    }

    .nova-products--ryzn .slider-controls,
    .nova-products--ryzn .ryzn-slider-controls {
        justify-content: flex-start;
    }
}

/* Hide leftover Arie care-catalog chips if an old layout still renders */
.nova-care__filters {
    display: none !important;
}

.nova-products--care .nova-care__heading,
.nova-products--care .nova-care__note {
    display: none;
}

.nova-products--care .nova-care__grid {
    display: flex;
    gap: 24px;
    overflow-x: auto;
}

/* =============================================================================
   DIALOGS
   ============================================================================= */

.ryzn-dialog,
dialog.ryzn-dialog {
    border: 0;
    border-radius: 16px;
    padding: 40px;
    width: min(620px, calc(100% - 32px));
    max-height: 85vh;
    overflow: auto;
    background: var(--paper, #fafbf8);
    color: var(--ink, #173037);
}

.ryzn-dialog::backdrop {
    background: #091522b8;
    backdrop-filter: blur(5px);
}

.ryzn-dialog h2 {
    font-family: Raleway, Inter, Arial, sans-serif;
    font-size: 32px;
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.08;
    margin-bottom: 25px;
    color: var(--ink, #173037);
}

.ryzn-dialog label {
    display: block;
    font-size: 16px;
    font-weight: 400;
    color: var(--ink, #173037);
}

.ryzn-dialog p {
    font-size: 16px;
    margin-bottom: 20px;
    color: var(--muted, #566968);
}

.ryzn-dialog .eyebrow {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    margin-bottom: 22px;
    color: var(--ink, #173037);
}

.ryzn-dialog .close {
    position: absolute;
    right: 16px;
    top: 12px;
    border: 0;
    background: none;
    font-size: 30px;
    padding: 5px;
    color: inherit;
}

.search-field {
    width: 100%;
    font-size: 16px;
    padding: 14px;
    border: 1px solid #9eafab;
    border-radius: 6px;
    margin-top: 10px;
    background: #fff;
    color: var(--ink, #173037);
}

.search-results,
.goal-options {
    display: grid;
    gap: 12px;
    margin-top: 24px;
}

.search-results a,
.search-results button,
.goal-options a,
.goal-options button {
    display: block;
    width: 100%;
    box-sizing: border-box;
    background: #e6eeea;
    border: 1px solid transparent;
    padding: 17px;
    text-align: left;
    border-radius: 6px;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.4;
    color: var(--ink, #173037);
    text-decoration: none;
}

.search-results a:hover,
.search-results button:hover,
.goal-options a:hover,
.goal-options button:hover {
    background: #d7e6e0;
}

.goal-options a[aria-pressed="true"],
.goal-options button[aria-pressed="true"] {
    border-color: #468b86;
    background: #cce3da;
}

.goal-result {
    margin-top: 25px;
}

.goal-result .btn {
    margin-top: 8px;
}

/* Approach / FAQ surfaces when those Elementor blocks exist */
body.home .elementor-widget-n-accordion .e-n-accordion-item {
    border-top: 1px solid #c6d3cd;
    border-bottom: 0;
}

body.home .e-n-accordion-item-title-text {
    font-size: 16px !important;
}

.elementor-social-icon svg path {
    fill: currentColor !important;
}

/* =============================================================================
   MY ACCOUNT — dashboard, orders, downloads, addresses, payments, details, login
   ============================================================================= */

html:has(body.woocommerce-account),
body.woocommerce-account {
    overflow-x: clip;
}

body.woocommerce-account .site-main,
body.woocommerce-account .page-content,
body.woocommerce-account .woocommerce,
body.woocommerce-account .elementor-location-footer {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

body.woocommerce-account .site-main {
    max-width: 1400px;
    width: min(1400px, calc(100% - 96px));
    margin-inline: auto;
    padding-block: 56px 88px;
    padding-inline: 0;
    min-height: calc(100vh - 280px);
}

body.woocommerce-account .page-content,
body.woocommerce-account .page-content p,
body.woocommerce-account .page-content li,
body.woocommerce-account .woocommerce {
    color: var(--ink, #173037);
    font: 16px/1.6 Inter, Arial, sans-serif;
}

body.woocommerce-account .page-content a {
    text-decoration: none;
}

body.woocommerce-account .woocommerce::before,
body.woocommerce-account .woocommerce::after,
body.woocommerce-account .u-columns::before,
body.woocommerce-account .u-columns::after,
body.woocommerce-account .col2-set::before,
body.woocommerce-account .col2-set::after {
    content: none;
    display: none;
}

body.logged-in.woocommerce-account .woocommerce,
body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 40px 48px;
    align-items: start;
}

body.woocommerce-account .woocommerce-notices-wrapper {
    grid-column: 1 / -1;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
    float: none;
    width: auto;
    position: sticky;
    top: 110px;
    background: #fff;
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 14px;
    padding: 12px;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: flex;
    flex-direction: column;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: block;
    padding: 12px 14px;
    border-radius: 8px;
    color: var(--ink, #173037);
    font-size: 16px;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--navy, #091522);
    color: #fff;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li:not(.is-active) a:hover {
    background: #e8efea;
    color: var(--navy, #091522);
}

body.woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: auto;
    min-width: 0;
    background: #fff;
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 14px;
    padding: 32px 36px 36px;
}

body.woocommerce-account .woocommerce-MyAccount-content > *:first-child {
    margin-top: 0;
}

body.woocommerce-account .woocommerce-MyAccount-content > *:last-child {
    margin-bottom: 0;
}

body.woocommerce-account .woocommerce-MyAccount-content a {
    color: var(--navy, #091522);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--aqua, #9bd5cf);
    text-underline-offset: 3px;
}

body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3,
body.woocommerce-account #customer_login h2,
body.woocommerce-lost-password .woocommerce h2,
body.woocommerce-ResetPassword h2 {
    font-family: Raleway, Inter, Arial, sans-serif;
    font-weight: 800;
    letter-spacing: -0.045em;
    line-height: 1.08;
    color: var(--ink, #173037);
    margin: 0 0 16px;
}

body.woocommerce-account .woocommerce-MyAccount-content h2 {
    font-size: 32px;
}

body.woocommerce-account .woocommerce-MyAccount-content h3 {
    font-size: 22px;
    font-family: Inter, Arial, sans-serif;
    font-weight: 600;
    letter-spacing: -0.025em;
}

body.woocommerce-account .woocommerce-Addresses,
body.woocommerce-account .u-columns.addresses,
body.woocommerce-account .woocommerce-customer-details .woocommerce-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    float: none;
    width: 100%;
}

body.woocommerce-account .woocommerce-Address,
body.woocommerce-account .woocommerce-column {
    float: none;
    width: auto;
    margin: 0;
    background: var(--paper, #fafbf8);
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 12px;
    padding: 22px;
}

body.woocommerce-account .woocommerce-Address-title,
body.woocommerce-account .woocommerce-column__title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

body.woocommerce-account .woocommerce-Address-title h2,
body.woocommerce-account .woocommerce-column__title {
    margin: 0;
    font-size: 24px;
}

body.woocommerce-account .woocommerce-Address address,
body.woocommerce-account .woocommerce-column address {
    font-style: normal;
    color: var(--muted, #566968);
    line-height: 1.6;
}

body.woocommerce-account .woocommerce-Address-title a.edit,
body.woocommerce-account .woocommerce-Address a.edit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 22px;
    border: 1px solid transparent;
    border-radius: 6px;
    background: var(--aqua, #9bd5cf);
    color: var(--navy, #091522);
    font-family: Inter, Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition: background 0.2s, transform 0.2s;
}

body.woocommerce-account .woocommerce-Address-title a.edit:hover,
body.woocommerce-account .woocommerce-Address a.edit:hover {
    background: #bce8df;
    color: var(--navy, #091522);
    transform: translateY(-2px);
}

body.woocommerce-account #customer_login {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    float: none;
    width: 100%;
}

body.woocommerce-account #customer_login .u-column1,
body.woocommerce-account #customer_login .u-column2,
body.woocommerce-account #customer_login .col-1,
body.woocommerce-account #customer_login .col-2 {
    float: none;
    width: auto;
    margin: 0;
    background: #fff;
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 14px;
    padding: 32px;
}

body.woocommerce-lost-password .woocommerce {
    max-width: 520px;
    margin: 0 auto;
}

body.woocommerce-lost-password .woocommerce-ResetPassword,
body.woocommerce-account .woocommerce-form-lost-password {
    background: #fff;
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 14px;
    padding: 32px;
}

body.woocommerce-account .woocommerce-form-row,
body.woocommerce-account .form-row {
    margin: 0 0 16px;
}

body.woocommerce-account .form-row-first,
body.woocommerce-account .form-row-last {
    float: none;
    width: 100%;
}

body.woocommerce-account form.edit-account,
body.woocommerce-account form.woocommerce-EditAccountForm,
body.woocommerce-account .woocommerce-address-fields__field-wrapper {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 16px;
    max-width: 760px;
}

body.woocommerce-account form.edit-account .form-row-wide,
body.woocommerce-account form.woocommerce-EditAccountForm .form-row-wide,
body.woocommerce-account .woocommerce-address-fields__field-wrapper .form-row-wide,
body.woocommerce-account form.edit-account fieldset,
body.woocommerce-account form.woocommerce-EditAccountForm fieldset,
body.woocommerce-account form.edit-account .clear,
body.woocommerce-account form.edit-account > p:last-of-type {
    grid-column: 1 / -1;
}

body.woocommerce-account fieldset {
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 12px;
    padding: 20px 20px 8px;
    margin: 8px 0 16px;
}

body.woocommerce-account legend {
    font-family: Inter, Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -0.02em;
    padding: 0 8px;
    color: var(--ink, #173037);
}

body.woocommerce-account label {
    display: inline-block;
    margin-bottom: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--ink, #173037);
}

body.woocommerce-account .woocommerce-form__label-for-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
}

body.woocommerce-account .woocommerce-Input,
body.woocommerce-account input.input-text,
body.woocommerce-account select,
body.woocommerce-account textarea,
body.woocommerce-account .select2-container .select2-selection--single {
    width: 100%;
    background: #fff;
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 6px;
    min-height: 48px;
    color: var(--ink, #173037);
    font: 16px/1.4 Inter, Arial, sans-serif;
}

body.woocommerce-account .select2-container .select2-selection--single {
    display: flex;
    align-items: center;
    padding: 0 10px;
}

body.woocommerce-account .woocommerce-button,
body.woocommerce-account button.button,
body.woocommerce-account a.button,
body.woocommerce-account input.button,
body.woocommerce-account #place_order {
    background: var(--aqua, #9bd5cf) !important;
    color: var(--navy, #091522) !important;
    border: 0 !important;
    border-radius: 6px !important;
    min-height: 48px;
    padding: 12px 22px;
    font-family: Inter, Arial, sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}

body.woocommerce-account .woocommerce-button:hover,
body.woocommerce-account button.button:hover,
body.woocommerce-account a.button:hover,
body.woocommerce-account input.button:hover {
    background: #bce8df !important;
    color: var(--navy, #091522) !important;
}

body.woocommerce-account a.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

body.woocommerce-account .woocommerce-form-login .form-row:not(.woocommerce-form-row),
body.woocommerce-account .woocommerce-form-register .form-row:not(.woocommerce-form-row) {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
}

body.woocommerce-account .woocommerce-form-login__submit,
body.woocommerce-account .woocommerce-form-register__submit {
    width: 100%;
}

body.woocommerce-account .password-input {
    position: relative;
    display: block;
}

body.woocommerce-account .show-password-input {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    min-height: 36px;
    padding: 0;
    background: transparent !important;
    color: var(--muted, #566968) !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.woocommerce-account table.shop_table,
body.woocommerce-account table.woocommerce-orders-table,
body.woocommerce-account table.woocommerce-MyAccount-orders,
body.woocommerce-account table.account-orders-table,
body.woocommerce-account table.woocommerce-table--order-details,
body.woocommerce-account table.woocommerce-MyAccount-paymentMethods {
    width: 100%;
    border: 1px solid var(--line, #d7e0dc);
    border-radius: 12px;
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    background: #fff;
    margin: 0 0 20px;
}

body.woocommerce-account table.shop_table th,
body.woocommerce-account table.woocommerce-orders-table th,
body.woocommerce-account table.woocommerce-table--order-details th,
body.woocommerce-account table.woocommerce-MyAccount-paymentMethods th {
    background: #e8efea;
    color: var(--ink, #173037);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-align: left;
    padding: 12px 16px;
    border: 0;
}

body.woocommerce-account table.shop_table td,
body.woocommerce-account table.woocommerce-orders-table td,
body.woocommerce-account table.woocommerce-table--order-details td,
body.woocommerce-account table.woocommerce-MyAccount-paymentMethods td {
    padding: 14px 16px;
    border-top: 1px solid var(--line, #d7e0dc);
    border-left: 0;
    border-right: 0;
    vertical-align: middle;
}

body.woocommerce-account .woocommerce-orders-table__cell-order-actions,
body.woocommerce-account .woocommerce-MyAccount-paymentMethods .button {
    white-space: nowrap;
}

body.woocommerce-account .woocommerce-orders-table__cell-order-actions .button,
body.woocommerce-account table .button {
    min-height: 36px;
    padding: 8px 14px;
    font-size: 14px;
}

body.woocommerce-account .woocommerce-pagination {
    margin-top: 8px;
}

body.woocommerce-account mark,
body.woocommerce-account .woocommerce-orders-table__cell-order-status mark {
    background: #e8efea;
    color: var(--navy, #091522);
    border-radius: 6px;
    padding: 3px 8px;
    font-weight: 600;
}

body.woocommerce-account .order-again {
    margin-top: 16px;
}

body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-error {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    max-width: none;
    margin: 0 0 16px;
    border-radius: 10px;
    border: 1px solid transparent;
    padding: 18px 20px;
    font-size: 15px;
    font-weight: 500;
}

body.woocommerce-account .woocommerce-message:last-child,
body.woocommerce-account .woocommerce-info:last-child,
body.woocommerce-account .woocommerce-error:last-child {
    margin-bottom: 0;
}

body.woocommerce-account .woocommerce-message .button,
body.woocommerce-account .woocommerce-info .button,
body.woocommerce-account .woocommerce-error .button {
    float: none;
    margin: 0;
    flex: 0 0 auto;
}

body.woocommerce-account .woocommerce-message::before,
body.woocommerce-account .woocommerce-info::before,
body.woocommerce-account .woocommerce-error::before {
    display: none;
}

body.woocommerce-account .woocommerce-message {
    background: var(--navy, #091522);
    color: #fff;
}

body.woocommerce-account .woocommerce-info {
    background: #e8efea;
    border-color: var(--line, #d7e0dc);
    color: var(--ink, #173037);
}

body.woocommerce-account .woocommerce-error {
    background: #f3e4e0;
    border-color: #d9b3ab;
    color: var(--ink, #173037);
}

body.woocommerce-account .woocommerce-message a,
body.woocommerce-account .woocommerce-info a,
body.woocommerce-account .woocommerce-error a {
    color: inherit;
    font-weight: 600;
}

@media (max-width: 1100px) {
    body.woocommerce-account .site-main {
        width: calc(100% - 56px);
        padding-block: 40px 64px;
    }

    body.logged-in.woocommerce-account .woocommerce,
    body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 28px;
    }

    body.woocommerce-account .woocommerce-MyAccount-content {
        padding: 24px;
    }
}

@media (max-width: 760px) {
    body.woocommerce-account .site-main {
        width: min(1400px, calc(100% - 32px));
        min-height: 0;
        padding-block: 24px 40px;
    }

    body.logged-in.woocommerce-account .woocommerce,
    body.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
        width: 100%;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation {
        position: static;
        width: 100%;
        max-width: 100%;
        padding: 8px;
        overflow: hidden;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation ul {
        display: flex;
        flex-direction: column;
        overflow: visible;
        gap: 4px;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation a {
        white-space: normal;
        text-align: left;
        padding: 12px 14px;
        font-size: 16px;
    }

    body.woocommerce-account .woocommerce-Addresses,
    body.woocommerce-account .u-columns.addresses,
    body.woocommerce-account .woocommerce-customer-details .woocommerce-columns,
    body.woocommerce-account #customer_login,
    body.woocommerce-account form.edit-account,
    body.woocommerce-account form.woocommerce-EditAccountForm,
    body.woocommerce-account form.woocommerce-address-fields,
    body.woocommerce-account .woocommerce-address-fields__field-wrapper {
        grid-template-columns: 1fr;
        max-width: 100%;
    }

    body.woocommerce-account .woocommerce-Address-title,
    body.woocommerce-account .woocommerce-column__title {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    body.woocommerce-account .woocommerce-MyAccount-content,
    body.woocommerce-account #customer_login .u-column1,
    body.woocommerce-account #customer_login .u-column2,
    body.woocommerce-account #customer_login .col-1,
    body.woocommerce-account #customer_login .col-2 {
        padding: 18px;
        width: 100%;
    }

    body.woocommerce-account .woocommerce-MyAccount-content h2 {
        font-size: 26px;
    }

    body.woocommerce-account .woocommerce-message,
    body.woocommerce-account .woocommerce-info,
    body.woocommerce-account .woocommerce-error {
        flex-direction: column;
        align-items: stretch;
    }

    body.woocommerce-account .woocommerce-message .button,
    body.woocommerce-account .woocommerce-info .button,
    body.woocommerce-account .woocommerce-error .button {
        width: 100%;
    }

    body.woocommerce-account table.shop_table,
    body.woocommerce-account table.woocommerce-orders-table,
    body.woocommerce-account table.woocommerce-MyAccount-paymentMethods {
        display: block;
        overflow-x: auto;
        max-width: 100%;
    }

    body.woocommerce-account .select2-container {
        width: 100% !important;
        max-width: 100%;
    }

    body.woocommerce-lost-password .woocommerce {
        max-width: 100%;
    }
}

/* custom-link — plain text underline, no CTA chrome, no hover change */
html body .elementor .elementor-element.custom-link,
html body .elementor .elementor-widget-button.custom-link,
.custom-link.elementor-widget-button,
.custom-link.elementor-element {
    --radius-cta: 0;
    --border-radius: 0;
    --border-top-left-radius: 0;
    --border-top-right-radius: 0;
    --border-bottom-right-radius: 0;
    --border-bottom-left-radius: 0;
    --e-button-border-radius: 0;
    --button-border-radius: 0;
    --button-bg-color: transparent;
    --button-background-color: transparent;
    --button-hover-background-color: transparent;
    --button-text-color: #173037;
    --button-hover-text-color: #173037;
    width: auto !important;
    max-width: max-content !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    box-shadow: none !important;
}

html body .elementor .elementor-element.elementor-widget-button.custom-link .elementor-button,
html body .elementor .custom-link .elementor-button,
html body .elementor .custom-link a.elementor-button-link,
a.custom-link,
button.custom-link {
    display: inline !important;
    width: auto !important;
    max-width: max-content !important;
    min-height: 0 !important;
    height: auto !important;
    border: 0 !important;
    border-bottom: 1px solid #173037 !important;
    border-radius: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    outline: none !important;
    color: #173037 !important;
    padding: 0 0 6px !important;
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    text-decoration: none !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
}

html body .elementor .custom-link .elementor-button-content-wrapper,
html body .elementor .custom-link .elementor-button-text {
    display: inline !important;
    background: transparent !important;
    color: #173037 !important;
    text-decoration: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

html body .elementor .custom-link .elementor-button::before,
html body .elementor .custom-link .elementor-button::after,
html body .elementor .custom-link .elementor-button-content-wrapper::before,
html body .elementor .custom-link .elementor-button-content-wrapper::after,
html body .elementor .custom-link .elementor-button-text::before,
html body .elementor .custom-link .elementor-button-text::after {
    content: none !important;
    display: none !important;
}

html body .elementor .elementor-element.elementor-widget-button.custom-link .elementor-button:hover,
html body .elementor .custom-link .elementor-button:hover,
html body .elementor .custom-link .elementor-button:hover .elementor-button-text,
html body .elementor .custom-link .elementor-button:hover .elementor-button-content-wrapper,
html body .elementor .custom-link .elementor-button:focus,
html body .elementor .custom-link .elementor-button:focus-visible,
html body .elementor .custom-link .elementor-button:active,
html body .elementor .custom-link a.elementor-button:hover,
html body .elementor .custom-link a.elementor-button:focus,
html body .elementor .custom-link a.elementor-button:active,
a.custom-link:hover,
a.custom-link:focus,
a.custom-link:active,
button.custom-link:hover,
button.custom-link:focus,
button.custom-link:active {
    border: 0 !important;
    border-bottom: 1px solid #173037 !important;
    border-radius: 0 !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
    color: #173037 !important;
    opacity: 1 !important;
    padding: 0 0 6px !important;
    text-decoration: none !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
}

/* First-50 promotional strip: scoped to this Elementor header row only. */
.elementor-location-header > .elementor-element-16ecd3a7 {
    display: flex !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 8px 16px !important;
    background: #9bd5cf !important;
    color: #091522 !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 2px 18px !important;
}
.elementor-location-header .elementor-element-16ecd3a7 p {
    margin: 0 !important;
    padding: 0 !important;
    color: #091522 !important;
    font-size: 13px !important;
    line-height: 20px !important;
    text-align: center;
    cursor: auto;
}
@media (max-width: 767px) {
    .elementor-location-header > .elementor-element-16ecd3a7 {
        flex-direction: column !important;
        gap: 0 !important;
        padding: 6px 12px !important;
    }
    .elementor-location-header .elementor-element-16ecd3a7 p {
        font-size: 12px !important;
        line-height: 18px !important;
    }
}
