/* Evopure PAGE TEMPLATES, v4 (2026-09-23): designed fresh to the homepage standard. Applies to every page built on "Evopure — Content Page" (32458)
   / "Evopure — Simple / Legal Page" (32459): Our Story, Mission, Sustainability, Learn hub, goal pages, Lab Reports, Reviews, Contact, FAQs,
   Ingredients, What's next, the policies. Tokens from chrome.css; article type from blog.css.
   THE IDEA: the page sits on the warm off-white (--evo-page) like the PDP. Sections rotate tone (white / off-white / sand) and navy is used as
   punctuation: the ledger is a contained navy panel with the big signature corner, a pull-quote is a full-bleed navy band. Text sections are
   the homepage Story's editorial grid (section title left, sticky at a considered offset; reading measure right). Everything reveals on scroll.
   STRUCTURE (classes come from the template / merge_pages_v3.py): evo-page-hero · evo-page-text (+evo-has-aside from pages.js) · evo-page-row
   (+evo-row-alt) · evo-video-section · evo-stat-band (+evo-stat) · evo-page-quote · evo-faq-section · evo-page-cards · evo-page-products ·
   evo-page-suggest · evo-legal-page. TONES: evo-tone-white / evo-tone-page / evo-tone-sand / evo-tone-navy set by the merge (rotation). */
body.evo-page-tpl { --evo-page-w: 1180px; --evo-page-gut: var(--evo-gutter, 24px); --evo-sec: clamp(64px, 7vw, 112px); --evo-sec-s: clamp(40px, 4.6vw, 72px); --evo-page-gap: clamp(36px, 5.6vw, 96px); --evo-sticky-top: 148px; --evo-sand: var(--e-global-color-sand, #ECE5D8); }
body.evo-page-tpl { background: var(--evo-page) !important; }
body.evo-page-tpl .elementor-location-header, body.evo-page-tpl .elementor-location-footer { background: initial; }

/* ONE WIDTH + ONE RHYTHM: every section's content box is --evo-page-w with the site gutter; vertical space comes from two tokens, never the editor's boxes */
body.evo-page-tpl .e-con.evo-page-hero, body.evo-page-tpl .e-con.evo-page-text, body.evo-page-tpl .e-con.evo-page-row, body.evo-page-tpl .e-con.evo-video-section, body.evo-page-tpl .e-con.evo-faq-section, body.evo-page-tpl .e-con.evo-page-products, body.evo-page-tpl .e-con.evo-page-suggest, body.evo-page-tpl .e-con.evo-legal-page, body.evo-page-tpl .e-con.evo-page-cards, body.evo-page-tpl .e-con.evo-page-quote, body.evo-page-tpl .evo-stat-band .e-con-boxed, body.evo-page-tpl .evo-stat-band > .e-con-inner > .e-con, body.evo-page-tpl .evo-stat-band > .e-con {
	--content-width: var(--evo-page-w) !important; --padding-left: var(--evo-page-gut) !important; --padding-right: var(--evo-page-gut) !important; }
body.evo-page-tpl .e-con.evo-page-hero { --padding-top: var(--evo-sec-s) !important; --padding-bottom: var(--evo-sec) !important; }
body.evo-page-tpl .e-con.evo-page-text, body.evo-page-tpl .e-con.evo-faq-section, body.evo-page-tpl .e-con.evo-page-cards, body.evo-page-tpl .e-con.evo-page-row, body.evo-page-tpl .e-con.evo-video-section, body.evo-page-tpl .e-con.evo-page-products, body.evo-page-tpl .e-con.evo-page-suggest, body.evo-page-tpl .e-con.evo-page-quote { --padding-top: var(--evo-sec) !important; --padding-bottom: var(--evo-sec) !important; }
body.evo-page-tpl .e-con.evo-stat-band { --padding-top: var(--evo-sec) !important; --padding-bottom: var(--evo-sec) !important; }      /* the navy panel floats in the middle of its block, equal air above and below */
body.evo-page-tpl .e-con.evo-page-text + .e-con.evo-page-text { --padding-top: 0 !important; }
body.evo-page-tpl .e-con.evo-legal-page { --padding-top: var(--evo-sec-s) !important; --padding-bottom: var(--evo-sec) !important; }

/* TONES: three lights that rotate, navy for punctuation. The merge sets one class per section; the tone is the section's whole background. */
body.evo-page-tpl .e-con.evo-tone-white { background: var(--evo-white) !important; }
body.evo-page-tpl .e-con.evo-tone-page { background: var(--evo-page) !important; }
body.evo-page-tpl .e-con.evo-tone-sand { background: var(--evo-sand) !important; }
body.evo-page-tpl .e-con.evo-tone-navy { background: var(--evo-navy) !important; color: var(--evo-page); }
body.evo-page-tpl .e-con.evo-stat-band.evo-tone-sand, body.evo-page-tpl .e-con.evo-stat-band.evo-tone-page { background: var(--evo-page) !important; }      /* the ledger always sits on the off-white ground */

/* HERO: on the off-white. Eyebrow · big New Spirit title · standfirst, the photo carries the big signature corner. A hairline closes the hero. */
.evo-page-hero .e-con-inner, .evo-page-hero.e-con { align-items: center; }
.evo-page-hero .evo-page-eyebrow .elementor-heading-title, .evo-legal-page .evo-page-eyebrow .elementor-heading-title, .evo-page-row .elementor-widget-heading:first-child .elementor-heading-title, .evo-faq-section .elementor-widget-heading:first-child .elementor-heading-title, .evo-page-products__head .elementor-widget-heading:first-child .elementor-heading-title, .evo-page-suggest__copy .elementor-widget-heading:first-child .elementor-heading-title, .evo-page-cards__head .elementor-widget-heading:first-child .elementor-heading-title, .evo-page-quote .evo-page-quote__eyebrow .elementor-heading-title {
	margin: 0; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-size: 11.5px !important; letter-spacing: .18em !important; text-transform: uppercase !important; line-height: 1.4 !important; color: var(--evo-navy) !important; }
.evo-page-hero .evo-page-title .elementor-heading-title, .evo-legal-page .evo-page-title .elementor-heading-title { margin: 0; font-size: var(--evo-page-h1) !important; line-height: 1.02 !important; letter-spacing: -.015em; text-wrap: balance; }
.evo-page-hero .evo-standfirst, .evo-page-hero .evo-standfirst p { margin: 0; max-width: 30em; font-family: var(--e-global-typography-body-font-family), sans-serif !important; font-weight: 300 !important; font-size: clamp(17px, 1.4vw, 20px) !important; line-height: 1.55 !important; color: var(--evo-charcoal) !important; text-wrap: pretty; }
.evo-page-hero .evo-standfirst h2, .evo-page-hero .evo-standfirst h3, .evo-page-hero .evo-standfirst h4 { margin: 1.3em 0 .4em !important; font-family: var(--e-global-typography-h3-font-family), serif !important; font-weight: 700 !important; font-style: italic !important; font-size: clamp(22px, 1.9vw, 27px) !important; line-height: 1.15 !important; letter-spacing: -.005em; color: var(--evo-navy) !important; }
.evo-page-hero .evo-standfirst p + p { margin-top: .9em; }
.evo-page-hero > .e-con-inner > .e-con:first-child, .evo-page-hero > .e-con:first-child { row-gap: 18px !important; }
.evo-page-hero .evo-page-hero-img img { display: block; width: 100%; height: auto; border-radius: 0 var(--evo-radius-sweep) 0 0 !important; }
.evo-page-hero .elementor-widget-image { line-height: 0; }
.evo-page-hero .evo-page-hero-img--crop img { aspect-ratio: 5 / 4; object-fit: cover; }

/* TEXT SECTIONS: the editorial grid where there is a section title; one centred measure where there is not */
.evo-page-text .evo-article-col, .evo-faq-section .evo-article-col { max-width: none !important; width: 100% !important; --content-width: 100% !important; }
.evo-page-text .evo-article-col > .e-con-inner, .evo-faq-section .evo-article-col > .e-con-inner { max-width: none !important; width: 100%; }
.evo-page-text .evo-article-col.evo-has-aside > .e-con-inner, .evo-faq-section .evo-article-col > .e-con-inner { display: grid !important; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--evo-page-gap); row-gap: 0; align-items: start; }
.evo-page-text .evo-article-col:not(.evo-has-aside) > .e-con-inner { display: flex !important; flex-direction: column; align-items: center; }
.evo-page-text .evo-article-col:not(.evo-has-aside) .e-con-inner > .elementor-widget-text-editor { width: 100% !important; max-width: 760px; }
.evo-page-text .evo-article-col.evo-has-aside .e-con-inner > .elementor-widget-text-editor, .evo-faq-section .evo-article-col .e-con-inner > .elementor-widget-nested-accordion { grid-column: 2; width: 100% !important; max-width: 720px; }
.evo-page-aside, .evo-faq-section .evo-article-col .e-con-inner > .e-con:first-child { grid-column: 1; grid-row: 1 / span 12; position: sticky; top: var(--evo-sticky-top); width: 100% !important; max-width: 400px; }
.evo-page-aside { padding-top: 22px; box-shadow: inset 0 1px 0 color-mix(in srgb, var(--evo-navy) 18%, transparent); }      /* the section opens with a short rule, like the homepage ledger */
.evo-faq-section .evo-article-col .e-con-inner > .e-con:first-child { --padding-top: 22px !important; --padding-bottom: 0 !important; padding: 22px 0 0 !important; row-gap: 14px !important; box-shadow: inset 0 1px 0 color-mix(in srgb, var(--evo-navy) 18%, transparent); }
.evo-page-aside__title { margin: 0; font-family: var(--e-global-typography-h2-font-family), serif; font-weight: 700; font-style: italic; font-size: var(--evo-page-h2); line-height: 1.04; letter-spacing: -.012em; color: var(--evo-navy); text-wrap: balance; }
.evo-page-aside__kicker { margin: 0; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif; font-weight: var(--evo-caps-w); font-size: 11.5px; letter-spacing: .18em; text-transform: uppercase; line-height: 1.4; color: var(--evo-navy); }
.evo-page-aside > * + * { margin-top: 18px; }
.evo-page-text .evo-article-body > h2:first-child { margin-top: 0 !important; }
.evo-page-text .evo-article-body h2 { font-size: clamp(24px, 2.2vw, 30px) !important; line-height: 1.12 !important; }
.evo-page-text .evo-article-col.evo-has-aside .evo-article-body > p:first-child { font-size: clamp(17px, 1.3vw, 19px) !important; line-height: 1.55 !important; color: var(--evo-navy) !important; }      /* the lead line of a section */
.evo-article-body h2.evo-kicker { margin: 2.6em 0 .2em !important; padding-top: 1.2em; border-top: 1px solid color-mix(in srgb, var(--evo-navy) 12%, transparent); font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-style: normal !important; font-size: 11.5px !important; letter-spacing: .18em !important; text-transform: uppercase !important; line-height: 1.4 !important; color: var(--evo-navy) !important; }
.evo-article-body h2.evo-kicker + h2 { margin-top: .6em !important; }
.evo-article-body > h2.evo-kicker:first-child { margin-top: 0 !important; padding-top: 0; border-top: 0; }
.evo-article-col .evo-article-body { overflow: visible; }
.evo-section-text p { margin: 0 0 1em; } .evo-section-text p:last-child { margin-bottom: 0; }
.evo-tone-sand .evo-article-body blockquote, .evo-tone-page .evo-article-body blockquote { background: var(--evo-white); }

/* IMAGE + TEXT ROWS: every second row flips (evo-row-alt), the photo is a card with the card corner, the words hang level with its top */
.evo-page-row.e-con > .e-con-inner, .evo-page-row.e-con { align-items: center; column-gap: var(--evo-page-gap) !important; }
.evo-page-row.evo-row-alt > .e-con-inner, .evo-page-row.evo-row-alt.e-con { flex-direction: row-reverse !important; }
.evo-page-row .elementor-widget-image img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 0 var(--evo-radius-card) 0 0 !important; }
.evo-page-row .elementor-widget-heading .elementor-heading-title { margin: 0; }
.evo-page-row h2.elementor-heading-title, .evo-page-row h3.elementor-heading-title { font-size: var(--evo-page-h2) !important; line-height: 1.04 !important; letter-spacing: -.012em; text-wrap: balance; }
.evo-page-row .evo-section-text, .evo-page-row .evo-section-text p { font-family: var(--e-global-typography-body-font-family), sans-serif !important; font-weight: 300 !important; font-size: 16.5px !important; line-height: 1.62 !important; color: var(--evo-charcoal) !important; }
.evo-page-row .evo-cta { margin-top: 10px !important; width: auto !important; }
.evo-page-row > .e-con-inner > .e-con, .evo-page-row > .e-con { row-gap: 14px !important; }

/* THE LEDGER: a contained NAVY panel with the big signature corner (punctuation on the off-white), facts opening with a light rule */
.evo-stat-band > .e-con-inner > .e-con, .evo-stat-band > .e-con { width: 100%; max-width: var(--evo-page-w); margin-left: auto; margin-right: auto; --padding-top: clamp(40px, 4.6vw, 64px) !important; --padding-bottom: clamp(36px, 4.2vw, 56px) !important; --padding-left: clamp(28px, 4.6vw, 64px) !important; --padding-right: clamp(28px, 4.6vw, 64px) !important; background: var(--evo-navy) !important; border-radius: 0 var(--evo-radius-sweep) 0 0; column-gap: clamp(20px, 3vw, 48px) !important; row-gap: 28px !important; }
.evo-stat-band .evo-stat { display: flex !important; flex-direction: column; align-items: flex-start; gap: 10px; min-width: 0; --padding-top: 18px !important; --padding-bottom: 4px !important; --padding-block-start: 18px !important; --padding-block-end: 4px !important; box-shadow: inset 0 1px 0 color-mix(in srgb, var(--evo-page) 22%, transparent); }
.evo-stat-band .evo-stat > .elementor-widget { width: auto !important; margin: 0 !important; }
.evo-stat-band .evo-stat-num .elementor-heading-title { margin: 0; font-size: clamp(32px, 3.1vw, 46px) !important; line-height: 1.02 !important; letter-spacing: -.012em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; text-wrap: balance; color: var(--evo-page) !important; }
.evo-stat-band .evo-stat-label .elementor-heading-title { margin: 0; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-size: 10.5px !important; letter-spacing: .16em !important; text-transform: uppercase !important; line-height: 1.45 !important; color: var(--evo-page) !important; opacity: .68; }

/* THE QUOTE: a full-bleed navy band; the page's own pull-quote in New Spirit, its source in caps (built by the merge from the first blockquote) */
.evo-page-quote > .e-con-inner { display: grid !important; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--evo-page-gap); align-items: start; }
.evo-page-quote .elementor-widget { margin: 0 !important; }
.evo-page-quote .evo-page-quote__eyebrow { grid-column: 1; padding-top: 12px; box-shadow: inset 0 1px 0 color-mix(in srgb, var(--evo-page) 22%, transparent); }
.evo-page-quote .evo-page-quote__eyebrow .elementor-heading-title { color: var(--evo-page) !important; opacity: .72; }
.evo-page-quote .evo-page-quote__text { grid-column: 2; }
.evo-page-quote .evo-page-quote__text .elementor-heading-title { margin: 0; max-width: 18em; font-family: var(--e-global-typography-h2-font-family), serif !important; font-weight: 700 !important; font-style: italic !important; font-size: clamp(28px, 3.4vw, 48px) !important; line-height: 1.12 !important; letter-spacing: -.012em; color: var(--evo-page) !important; text-wrap: balance; }
.evo-page-quote .evo-page-quote__cite { grid-column: 2; margin-top: 22px !important; }
.evo-page-quote .evo-page-quote__cite .elementor-heading-title, .evo-page-quote .evo-page-quote__cite p { margin: 0; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-size: 11px !important; letter-spacing: .16em !important; text-transform: uppercase !important; color: var(--evo-page) !important; opacity: .72; }

/* FAQ: the homepage accordion on the Nested Accordion widget; hairlines, ring mark, no boxes */
.evo-faq-section .elementor-widget-heading .elementor-heading-title { margin: 0; }
.evo-faq-section .e-con:first-child h2.elementor-heading-title { font-size: var(--evo-page-h2) !important; line-height: 1.04 !important; letter-spacing: -.012em; text-wrap: balance; }
.evo-faq-accordion .e-n-accordion-item { border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--evo-navy) 12%, transparent); }
.evo-faq-accordion .e-n-accordion-item:first-child { box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--evo-navy) 12%, transparent), inset 0 1px 0 color-mix(in srgb, var(--evo-navy) 12%, transparent); }
.evo-faq-accordion .e-n-accordion-item-title { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0 !important; padding: 22px 2px !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; outline: 0 !important; cursor: pointer; list-style: none; -webkit-tap-highlight-color: transparent; }
.evo-faq-accordion .e-n-accordion-item-title::-webkit-details-marker { display: none; }
.evo-faq-accordion .e-n-accordion-item-title-header { min-width: 0; padding-right: 24px; transition: transform var(--evo-t-hover) var(--evo-ease); }
.evo-faq-accordion .e-n-accordion-item-title-text { margin: 0 !important; font-family: var(--evo-nav-sans, var(--e-global-typography-subheadcaps-font-family), sans-serif) !important; font-weight: 500 !important; font-style: normal !important; font-size: clamp(17px, 1.3vw, 19px) !important; letter-spacing: 0 !important; line-height: 1.35 !important; text-transform: none !important; color: var(--evo-navy) !important; }
.evo-faq-accordion .e-n-accordion-item-title-icon { position: relative; flex: none; width: 30px; height: 30px; margin: 0 !important; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--evo-navy); transition: background-color var(--evo-t-hover) var(--evo-ease), transform var(--evo-t-section) var(--evo-ease); }
.evo-faq-accordion .e-n-accordion-item-title-icon > * { display: none !important; }
.evo-faq-accordion .e-n-accordion-item-title-icon::before, .evo-faq-accordion .e-n-accordion-item-title-icon::after { content: ""; position: absolute; left: 9.5px; right: 9.5px; top: 50%; height: 1.5px; margin-top: -.75px; background: var(--evo-navy); transition: background-color var(--evo-t-hover) var(--evo-ease); }
.evo-faq-accordion .e-n-accordion-item-title-icon::after { transform: rotate(90deg); }
.evo-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon, .evo-faq-accordion .e-n-accordion-item-title:focus-visible .e-n-accordion-item-title-icon { background: var(--evo-navy); }
.evo-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon { transform: rotate(45deg); }
.evo-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon::before, .evo-faq-accordion .e-n-accordion-item[open] > .e-n-accordion-item-title .e-n-accordion-item-title-icon::after, .evo-faq-accordion .e-n-accordion-item-title:focus-visible .e-n-accordion-item-title-icon::before, .evo-faq-accordion .e-n-accordion-item-title:focus-visible .e-n-accordion-item-title-icon::after { background: var(--evo-white); }
@media (hover: hover) {
	.evo-faq-accordion .e-n-accordion-item-title:hover .e-n-accordion-item-title-header { transform: translateX(4px); }
	.evo-faq-accordion .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon { background: var(--evo-navy); }
	.evo-faq-accordion .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon::before, .evo-faq-accordion .e-n-accordion-item-title:hover .e-n-accordion-item-title-icon::after { background: var(--evo-white); }
}
.evo-faq-accordion .e-n-accordion-item > .e-con { padding: 0 64px 26px 2px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; }
.evo-faq-accordion .evo-faq-answer, .evo-faq-accordion .evo-faq-answer p { margin: 0 0 10px; max-width: 44em; font-family: var(--e-global-typography-body-font-family), sans-serif !important; font-weight: 300 !important; font-size: 16px !important; line-height: 1.6 !important; color: var(--evo-charcoal) !important; }
.evo-faq-accordion .evo-faq-answer p:last-child { margin-bottom: 0; }
.evo-faq-accordion .evo-faq-answer a { color: var(--evo-navy); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.evo-faq-section .evo-article-col .e-con-inner > .elementor-widget-nested-accordion + .elementor-widget-nested-accordion { margin-top: 0 !important; }
.evo-faq-section .evo-article-col .e-con-inner > .elementor-widget-nested-accordion + .elementor-widget-nested-accordion .e-n-accordion-item:first-child { box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--evo-navy) 12%, transparent); }

/* HUB CARDS ([evo_hub_cards]): image tile with the signature corner + the mega-menu hover outline, New Spirit title, one line, arrow */
.evo-page-cards > .e-con-inner { row-gap: 32px !important; }
.evo-page-cards .elementor-widget { margin: 0 !important; }
.evo-page-cards__head { row-gap: 12px !important; }
.evo-page-cards__head .elementor-heading-title { margin: 0; }
.evo-page-cards__head h2.elementor-heading-title { font-size: var(--evo-page-h2) !important; line-height: 1.04 !important; letter-spacing: -.012em; }
.evo-hub { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 22px; width: 100%; margin: 0; padding: 0; list-style: none; }
.evo-hub > li { margin: 0; }
.evo-hubcard { position: relative; display: flex; flex-direction: column; gap: 14px; height: 100%; margin: 0; color: var(--evo-navy); text-decoration: none !important; -webkit-tap-highlight-color: transparent; }
.evo-hubcard__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 0 var(--evo-radius-sig) 0 0; background: var(--evo-wash); }
.evo-hubcard__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.evo-hubcard__media::after { content: ""; position: absolute; inset: 0; z-index: 2; border: 1px solid var(--evo-navy); border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity var(--evo-t-hover) var(--evo-ease); }
.evo-hubcard__body { display: block; }
.evo-hubcard__eyebrow { display: block; margin: 0 0 6px; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif; font-weight: var(--evo-caps-w); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--evo-slate); }
.evo-hubcard__title { display: block; margin: 0; font-family: var(--e-global-typography-h3-font-family), serif; font-weight: 700; font-style: italic; font-size: clamp(20px, 1.6vw, 24px); line-height: 1.12; letter-spacing: -.005em; color: var(--evo-navy); }
.evo-hubcard__text { display: block; margin: 7px 0 0; font-family: var(--e-global-typography-body-font-family), sans-serif; font-weight: 300; font-size: 15px; line-height: 1.55; color: var(--evo-charcoal); }
.evo-hubcard__go { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 12px; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif; font-weight: var(--evo-caps-w); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--evo-navy); }
.evo-hubcard__go svg { width: 16px; height: 16px; transition: transform var(--evo-t-hover) var(--evo-ease); }
/* THE content-card hover (chrome.css: --evo-card-scale): one shadowless expand + the arrow circle fills navy. The 1px outline is the NAV's hover
   (mega-menu cards) and is not used on page cards (review 2026-09-23). */
.evo-hubcard { transition: transform var(--evo-t-hover) var(--evo-ease); }
.evo-hubcard__go .evo-arrowcircle { width: 38px; height: 38px; }
@media (hover: hover) { .evo-hubcard:hover { transform: scale(var(--evo-card-scale)); z-index: 1; } }
.evo-hubcard:focus-visible { outline: 0; transform: scale(var(--evo-card-scale)); }

/* REWARDS DASHBOARD (the WPGens points page inside the Rewards page): the plugin's own markup on our tokens */
body.evo-page-tpl .e-con.evo-page-rewards { --content-width: var(--evo-page-w) !important; --padding-left: var(--evo-page-gut) !important; --padding-right: var(--evo-page-gut) !important; --padding-top: var(--evo-sec) !important; --padding-bottom: var(--evo-sec) !important; background: var(--evo-white) !important; }
.evo-page-rewards .elementor-widget { margin: 0 !important; }
.evo-page-rewards .evo-rewards-w { width: 100%; }
.evo-page-rewards .wpgens-loyalty-landing-page-login-required, .evo-page-rewards .wpgens-points-page-guest, .evo-page-rewards .wpgens-loyalty-points-page { font-family: var(--e-global-typography-body-font-family), sans-serif; color: var(--evo-charcoal); }
.evo-page-rewards .wpgens-loyalty-landing-page-login-required { padding: 28px 30px; background: var(--evo-page); border-radius: 0 var(--evo-radius-card) 0 0; font-size: 16px; }
.evo-page-rewards [class*="wpgens"] h1, .evo-page-rewards [class*="wpgens"] h2, .evo-page-rewards [class*="wpgens"] h3 { font-family: var(--e-global-typography-h3-font-family), serif; font-weight: 700; font-style: italic; color: var(--evo-navy); }
.evo-page-rewards [class*="wpgens"] .button, .evo-page-rewards [class*="wpgens"] button:not(.evo-btn), .evo-page-rewards [class*="wpgens"] a.button { background: var(--evo-navy) !important; color: var(--evo-white) !important; border: 1px solid var(--evo-navy) !important; border-radius: 0 !important; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-size: 12px !important; letter-spacing: .16em !important; text-transform: uppercase !important; }
.evo-page-rewards [class*="wpgens"] .button:hover, .evo-page-rewards [class*="wpgens"] button:not(.evo-btn):hover { border-radius: 0 var(--evo-radius-sig) 0 0 !important; background: transparent !important; color: var(--evo-navy) !important; }
.evo-page-rewards [class*="wpgens"] input[type="text"], .evo-page-rewards [class*="wpgens"] input[type="email"] { background: var(--evo-page); border: 1px solid transparent; border-radius: 0; padding: 12px 14px; font-family: var(--e-global-typography-body-font-family), sans-serif; }

/* PRODUCTS: the homepage bestsellers rail; the first card lines up with the page edge */
.evo-page-products { overflow-x: clip; }
.evo-page-products .elementor-widget { margin: 0 !important; }
.evo-page-products .evo-best { --evo-best-bleed: max(var(--evo-page-gut), calc((100vw - var(--evo-page-w)) / 2)); }
.evo-page-products__head { align-items: center; text-align: center; row-gap: 12px !important; }
.evo-page-products__head .elementor-heading-title { margin: 0; }
.evo-page-products__head h2.elementor-heading-title { font-size: var(--evo-page-h2) !important; line-height: 1.04 !important; letter-spacing: -.012em; }
.evo-page-products .evo-best__nav { top: -62px; }
.evo-tone-white .evo-pcard { background: var(--evo-wash); }
@media (max-width: 767px) { .evo-page-products .evo-best__nav { display: none; } }

/* VIDEO: contained, card corner, caps caption */
.evo-video-section .evo-article-col { max-width: none !important; --content-width: 100% !important; width: 100% !important; }
.evo-video-section .evo-video iframe, .evo-video-section .elementor-video, .evo-video-section .elementor-wrapper { border-radius: 0 var(--evo-radius-card) 0 0; overflow: hidden; }
.evo-video-section .evo-video-caption, .evo-video-section .evo-video-caption p, .evo-video-section .evo-video-caption h1, .evo-video-section .evo-video-caption h2, .evo-video-section .evo-video-caption h3, .evo-video-section .evo-article-col > .elementor-widget-heading .elementor-heading-title { margin: 14px 0 0 !important; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-size: 10.5px !important; letter-spacing: .16em !important; text-transform: uppercase !important; line-height: 1.5 !important; color: var(--evo-slate) !important; }

/* SUGGESTIONS (What's next): copy beside the form; the form sits on a white card with the card corner */
.evo-page-suggest__form { background: var(--evo-white) !important; border-radius: 0 var(--evo-radius-card) 0 0; }
.evo-page-suggest__copy .elementor-widget-heading .elementor-heading-title { margin: 0; }
.evo-page-suggest__copy h2.elementor-heading-title { font-size: var(--evo-page-h2) !important; line-height: 1.04 !important; letter-spacing: -.012em; }
.evo-page-suggest .evo-form .elementor-field-textual, .evo-page-suggest .evo-form textarea { background-color: var(--evo-page) !important; }
.evo-page-suggest .evo-form textarea { min-height: 128px; padding: 14px 16px !important; }
.evo-page-suggest .evo-form .elementor-field-type-acceptance label { font-family: var(--e-global-typography-body-font-family), sans-serif; font-size: 14px; color: var(--evo-charcoal); }

/* LEGAL: title strip on the off-white, then the policy on white with the contents list left (sticky) */
.evo-legal-page .evo-legal-col { max-width: none !important; width: 100% !important; --content-width: 100% !important; }
.evo-legal-page .evo-last-updated .elementor-heading-title { margin: 0; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-size: 10.5px !important; letter-spacing: .16em !important; text-transform: uppercase !important; color: var(--evo-slate) !important; }
.evo-legal-page .evo-legal-col > .e-con:first-child, .evo-legal-page .evo-legal-col > .e-con-inner > .e-con:first-child { border-bottom: 1px solid color-mix(in srgb, var(--evo-navy) 14%, transparent) !important; --padding-bottom: 32px !important; row-gap: 12px !important; }
.evo-legal-page .evo-legal-col > .e-con:last-child, .evo-legal-page .evo-legal-col > .e-con-inner > .e-con:last-child { --padding-top: 44px !important; }
.evo-legal-page .evo-legal-col .e-con:last-child > .elementor-widget-text-editor { width: 100% !important; max-width: 760px; margin-left: auto; margin-right: auto; }
.evo-legal-page .evo-legal-body { display: grid !important; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: var(--evo-page-gap); align-items: start; max-width: none !important; width: 100%; }
.evo-legal-page .evo-legal-body > .elementor-widget-text-editor { grid-column: 2; width: 100% !important; max-width: 720px; margin: 0; }
.evo-legal-page .evo-legal-body > .evo-toc { grid-column: 1; grid-row: 1 / span 12; position: sticky; top: var(--evo-sticky-top); width: 100%; max-width: 400px; }
.evo-legal-page .evo-article-body h2 { font-size: clamp(22px, 2vw, 26px) !important; line-height: 1.15 !important; margin: 2em 0 .6em !important; scroll-margin-top: var(--evo-sticky-top); }
.evo-legal-page .evo-article-body > h2:first-child { margin-top: 0 !important; }
.evo-legal-page .evo-article-body h3 { scroll-margin-top: var(--evo-sticky-top); }
.evo-legal-page .evo-article-body, .evo-legal-page .evo-article-body p, .evo-legal-page .evo-article-body li { font-size: 16.5px !important; line-height: 1.68 !important; color: var(--evo-charcoal) !important; }
.evo-legal-page .evo-article-body ul, .evo-legal-page .evo-article-body ol { margin: 0 0 1.4em 1.2em; }
.evo-legal-page .evo-article-body table { width: 100%; border-collapse: collapse; margin: 0 0 1.6em; font-size: 15px; }
.evo-legal-page .evo-article-body th, .evo-legal-page .evo-article-body td { padding: 10px 12px 10px 0; text-align: left; vertical-align: top; border-bottom: 1px solid color-mix(in srgb, var(--evo-navy) 12%, transparent); }
.evo-legal-page .evo-article-body th { font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif; font-weight: var(--evo-caps-w); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--evo-navy); }
.evo-toc { margin: 0; padding: 24px 26px 22px; background: var(--evo-page); border-radius: 0 var(--evo-radius-card, 24px) 0 0; }
.evo-tone-page .evo-toc, .evo-page-aside .evo-toc { background: var(--evo-white); }
.evo-toc__title { margin: 0 0 12px !important; font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif !important; font-weight: var(--evo-caps-w) !important; font-size: 10.5px !important; letter-spacing: .16em !important; text-transform: uppercase !important; color: var(--evo-navy) !important; }
.evo-toc ol { list-style: none; margin: 0 !important; padding: 0; columns: 1; }
.evo-toc li { margin: 0 0 8px; break-inside: avoid; font-family: var(--evo-nav-sans, var(--e-global-typography-body-font-family)), sans-serif; font-size: 15px; line-height: 1.4; }
.evo-toc a { color: var(--evo-navy); text-decoration: none; box-shadow: inset 0 -1px 0 color-mix(in srgb, var(--evo-navy) 22%, transparent); transition: box-shadow var(--evo-t-hover) var(--evo-ease); }
.evo-toc a:hover, .evo-toc a:focus-visible { box-shadow: inset 0 -1px 0 var(--evo-navy); outline: 0; }
/* long lists (Ingredients: 24 entries) stay ONE column (review 2026-09-23: the split read as two navs); the panel scrolls inside the sticky column
   and the entry being read is marked with the rail grammar used by the help centre (2px navy rule, 500 weight) */
.evo-toc--long { position: relative; } .evo-toc--long ol { columns: 1; } .evo-toc--long li { font-size: 14.5px; margin-bottom: 0; }
.evo-page-aside .evo-toc--long, .evo-legal-body > .evo-toc--long { max-height: calc(100vh - var(--evo-sticky-top, 120px) - 32px); overflow: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.evo-toc li a { display: inline-block; padding: 5px 0; }
.evo-toc--long li a { display: block; padding: 7px 0 7px 14px; box-shadow: inset 1px 0 0 color-mix(in srgb, var(--evo-navy) 16%, transparent); }
.evo-toc--long li a:hover, .evo-toc--long li a:focus-visible { box-shadow: inset 2px 0 0 var(--evo-navy); }
.evo-toc a.is-on { font-weight: 500; box-shadow: inset 0 -1px 0 var(--evo-navy); }
.evo-toc--long li a.is-on { box-shadow: inset 2px 0 0 var(--evo-navy); }
.evo-page-text .evo-article-body h2, .evo-page-text .evo-article-body h3 { scroll-margin-top: var(--evo-sticky-top); }

/* MOTION (pages.js adds evo-reveal / evo-reveal-self): the homepage vocabulary, off for reduced motion */
html.evo-anim .evo-reveal:not(.is-done) > * { opacity: 0; transform: translateY(16px); transition: opacity var(--evo-t-section) var(--evo-ease), transform var(--evo-t-section) var(--evo-ease); transition-delay: calc(var(--evo-i, 0) * var(--evo-stagger)); }
html.evo-anim .evo-reveal.is-in:not(.is-done) > * { opacity: 1; transform: none; }
html.evo-anim .evo-reveal-self:not(.is-done) { opacity: 0; transform: translateY(16px); transition: opacity var(--evo-t-section) var(--evo-ease), transform var(--evo-t-section) var(--evo-ease); transition-delay: calc(var(--evo-i, 0) * var(--evo-stagger)); }
html.evo-anim .evo-reveal-self.is-in:not(.is-done) { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.evo-anim .evo-reveal > *, html.evo-anim .evo-reveal-self { opacity: 1 !important; transform: none !important; transition: none !important; } }

@media (max-width: 1024px) {
	.evo-page-text .evo-article-col.evo-has-aside > .e-con-inner, .evo-faq-section .evo-article-col > .e-con-inner, .evo-legal-page .evo-legal-body, .evo-page-quote > .e-con-inner { grid-template-columns: minmax(0, 1fr); }
	.evo-page-text .evo-article-col.evo-has-aside .e-con-inner > .elementor-widget-text-editor, .evo-faq-section .evo-article-col .e-con-inner > .elementor-widget-nested-accordion, .evo-legal-page .evo-legal-body > .elementor-widget-text-editor, .evo-page-quote .evo-page-quote__text, .evo-page-quote .evo-page-quote__cite { grid-column: 1; max-width: 720px; }
	.evo-page-aside, .evo-faq-section .evo-article-col .e-con-inner > .e-con:first-child, .evo-legal-page .evo-legal-body > .evo-toc, .evo-page-quote .evo-page-quote__eyebrow { grid-column: 1; grid-row: auto; position: static; max-width: 720px; margin-bottom: 20px; }
	.evo-hub { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.evo-toc ol { columns: 1; }
}
@media (max-width: 767px) {
	body.evo-page-tpl { --evo-sec: clamp(44px, 10vw, 64px); --evo-sec-s: clamp(32px, 7vw, 44px); }
	.evo-page-hero .evo-page-hero-img img { border-radius: 0 var(--evo-radius-card) 0 0 !important; }
	.evo-page-hero .evo-page-title .elementor-heading-title, .evo-legal-page .evo-page-title .elementor-heading-title { font-size: clamp(34px, 9.5vw, 40px) !important; }
	.evo-page-row.evo-row-alt > .e-con-inner, .evo-page-row.evo-row-alt.e-con, .evo-page-row > .e-con-inner, .evo-page-row.e-con { flex-direction: column !important; }
	.evo-stat-band > .e-con-inner > .e-con, .evo-stat-band > .e-con { border-radius: 0 var(--evo-radius-card) 0 0; --padding-left: 22px !important; --padding-right: 22px !important; --padding-top: 28px !important; --padding-bottom: 24px !important; row-gap: 18px !important; }
	.evo-stat-band .evo-stat { --padding-top: 14px !important; --padding-block-start: 14px !important; }
	.evo-faq-accordion .e-n-accordion-item-title { padding: 18px 0 !important; } .evo-faq-accordion .e-n-accordion-item-title-header { padding-right: 14px; }
	.evo-faq-accordion .e-n-accordion-item-title-text { font-size: 17px !important; }
	.evo-faq-accordion .e-n-accordion-item-title-icon { width: 28px; height: 28px; } .evo-faq-accordion .e-n-accordion-item-title-icon::before, .evo-faq-accordion .e-n-accordion-item-title-icon::after { left: 8.5px; right: 8.5px; }
	.evo-faq-accordion .e-n-accordion-item > .e-con { padding: 0 8px 22px 0 !important; }
	.evo-faq-accordion .evo-faq-answer, .evo-faq-accordion .evo-faq-answer p { font-size: 15.5px !important; }
	.evo-hub { grid-template-columns: 1fr; gap: 22px; } .evo-hubcard { flex-direction: row; gap: 16px; align-items: flex-start; height: auto; } .evo-hubcard__media { flex: 0 0 132px; aspect-ratio: 1 / 1; } .evo-hubcard__title { font-size: 19px; } .evo-hubcard__text { font-size: 14px; }
	.evo-toc { padding: 20px 18px 18px; } .evo-toc ol, .evo-toc--long ol { columns: 1; }
}

/* Legal pages: the caps line above the title repeated the title (review 2026-09-23); the title stands alone */
.evo-legal-page .evo-page-eyebrow { display: none; }

/* ONE page type scale (review 2026-09-23: "the fonts look way bigger than they need to be"). The homepage keeps its own showcase scale; content,
   help and legal pages use these. Reading text 17px DM Sans 300 (the blog's long reads stay 18px). */
:root { --evo-page-h1: clamp(40px, 4.2vw, 60px); --evo-page-h2: clamp(28px, 2.6vw, 38px); }
.evo-page-tpl .evo-page-text .evo-article-body, .evo-page-tpl .evo-page-text .evo-article-body p, .evo-page-tpl .evo-page-text .evo-article-body li { font-size: 17px !important; line-height: 1.7 !important; }
.evo-page-row .elementor-widget-text-editor, .evo-page-row .elementor-widget-text-editor p { font-size: 17px !important; line-height: 1.7 !important; }
/* an eyebrow that only repeats the title under it ("Sustainability" over "Sustainability built from the start") is removed by pages.js */
.evo-eyebrow-dup { display: none !important; }

/* THE LEDGER v2 (review 2026-09-23: "that block needs a rethink ... the content within it needs to look a bit nicer"). Same navy panel and sweep
   corner; inside: four equal columns across the FULL width divided by vertical hairlines, each with a tick ring, the value on one line in New Spirit
   and a sentence-case DM Sans label (no tiny caps). Phones: a 2 x 2 grid with the same hairlines. */
.evo-stat-band > .e-con > .e-con-inner, .evo-stat-band > .e-con-inner > .e-con > .e-con-inner { display: grid !important; grid-template-columns: none; grid-auto-columns: minmax(0, 1fr); grid-auto-flow: column; gap: 0 !important; width: 100%; max-width: none !important; }
.evo-stat-band > .e-con, .evo-stat-band > .e-con-inner > .e-con { --padding-top: clamp(36px, 3.6vw, 52px) !important; --padding-bottom: clamp(36px, 3.6vw, 52px) !important; --padding-left: clamp(24px, 3vw, 44px) !important; --padding-right: clamp(24px, 3vw, 44px) !important; }
.evo-stat-band .evo-stat { position: relative; --width: auto; width: auto !important; max-width: none !important; --flex-direction: column; flex-direction: column !important; flex-wrap: nowrap !important; align-items: flex-start !important; gap: 6px !important; box-shadow: none !important; --padding-top: 0 !important; --padding-bottom: 0 !important; --padding-block-start: 0 !important; --padding-block-end: 0 !important; padding: 4px clamp(18px, 2.4vw, 36px) !important; }
.evo-stat-band .evo-stat:first-child { padding-left: 0 !important; }
.evo-stat-band .evo-stat:last-child { padding-right: 0 !important; }
.evo-stat-band .evo-stat + .evo-stat { box-shadow: inset 1px 0 0 color-mix(in srgb, var(--evo-page) 16%, transparent) !important; }
.evo-stat-band .evo-stat::before { content: "" !important; display: block; position: static !important; inset: auto !important; flex: none; opacity: 1 !important; width: 34px; height: 34px; margin: 0 0 14px; border-radius: 50%;
	background: var(--evo-page); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Ccircle cx='17' cy='17' r='16.25' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M11.5 17.5l3.6 3.6 7.4-7.6' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 34px 34px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Ccircle cx='17' cy='17' r='16.25' fill='none' stroke='black' stroke-width='1.5'/%3E%3Cpath d='M11.5 17.5l3.6 3.6 7.4-7.6' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 34px 34px no-repeat; }
.evo-stat-band .evo-stat-num .elementor-heading-title { font-size: clamp(26px, 2.3vw, 34px) !important; line-height: 1.08 !important; white-space: nowrap; overflow-wrap: normal !important; }
.evo-stat-band .evo-stat-label .elementor-heading-title { font-family: var(--e-global-typography-body-font-family), sans-serif !important; font-weight: 300 !important; font-size: 15px !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1.45 !important; color: color-mix(in srgb, var(--evo-page) 82%, transparent) !important; }
.evo-stat-band .evo-stat-label .elementor-heading-title::first-letter { text-transform: uppercase; }
@media (max-width: 1024px) and (min-width: 768px) { .evo-stat-band .evo-stat-num .elementor-heading-title { white-space: normal; } }
@media (max-width: 767px) {
	.evo-stat-band > .e-con > .e-con-inner, .evo-stat-band > .e-con-inner > .e-con > .e-con-inner { grid-template-columns: 1fr 1fr; grid-auto-flow: row; }
	.evo-stat-band .evo-stat { padding: 20px 0 20px 18px !important; }
	.evo-stat-band .evo-stat:nth-child(odd) { padding-left: 0 !important; padding-right: 16px !important; box-shadow: none !important; }
	.evo-stat-band .evo-stat:nth-child(even) { box-shadow: inset 1px 0 0 color-mix(in srgb, var(--evo-page) 16%, transparent) !important; }
	.evo-stat-band .evo-stat:nth-child(n+3) { border-top: 1px solid color-mix(in srgb, var(--evo-page) 16%, transparent); }
	.evo-stat-band .evo-stat:nth-child(-n+2) { padding-top: 0 !important; } .evo-stat-band .evo-stat:nth-last-child(-n+2) { padding-bottom: 0 !important; }
	.evo-stat-band .evo-stat::before { width: 30px; height: 30px; margin-bottom: 12px; -webkit-mask-size: 30px 30px; mask-size: 30px 30px; }
	.evo-stat-band .evo-stat-num .elementor-heading-title { font-size: 25px !important; white-space: normal; }
	.evo-stat-band .evo-stat-label .elementor-heading-title { font-size: 14px !important; }
}
