/* Evopure: Build Your Bundle. v2 (2026-09-23 review) brings it to the site standard: product-card language, PDP option pills, cart-style summary.
   Desktop: product tiles (3 across) + a sticky summary panel on the right. ≤1024px: tiles 2 across, summary stacked under them,
   plus a slim fixed bar ("2 items · £54.98 · 5% off — View bundle") once something is picked. No shadows, no outlines on cards. */
.evo-bundle .elementor-widget { margin: 0 !important; }
.evo-bundle__head { align-items: center; text-align: center; }
.evo-bundle__title .elementor-heading-title { margin: 0; text-align: center; font-size: var(--evo-page-h1, clamp(40px, 4.2vw, 60px)) !important; line-height: 1.12 !important; }
.evo-bundle__sub, .evo-bundle__sub p { margin: 0 auto; text-align: center; max-width: 36em; }
.evo-bundle__tag { display: none !important; }      /* coral is for money only; the old tag repeated the title */
.evo-bundle__tag .elementor-heading-title { display: inline-block; margin: 0; padding: 7px 10px 6px; background: var(--evo-offer); color: var(--evo-white) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: .12em !important; line-height: 1 !important; }
.evo-bundle__steps .elementor-icon-list-items { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; counter-reset: evo-step; }
.evo-bundle__steps .elementor-icon-list-item { margin: 0 !important; padding: 0 !important; counter-increment: evo-step; }
.evo-bundle__steps .elementor-icon-list-item::after, .evo-bundle__steps .elementor-icon-list-icon { display: none !important; }
.evo-bundle__steps .elementor-icon-list-text { display: inline-flex; align-items: center; gap: 10px; padding: 0 !important; color: var(--evo-navy) !important; 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: .14em !important; text-transform: uppercase !important; line-height: 1.3 !important; }
.evo-bundle__steps .elementor-icon-list-text::before { content: counter(evo-step); display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--evo-navy); color: var(--evo-white); font-size: 10.5px; letter-spacing: 0; }
.evo-bun { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(28px, 3vw, 48px); align-items: start; width: 100%; font-family: var(--e-global-typography-body-font-family), sans-serif; font-weight: 300; color: var(--evo-charcoal); }
.evo-bun__main { display: flex; flex-direction: column; gap: clamp(40px, 4vw, 64px); min-width: 0; }
.evo-bun__ghead { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; margin: 0 0 18px; padding-bottom: 14px; border-bottom: 1px solid var(--evo-line); }
.evo-bun__gtitle { margin: 0; font-family: var(--e-global-typography-h3-font-family), serif; font-weight: 700; font-style: italic; font-size: clamp(24px, 2vw, 30px); line-height: 1.1; color: var(--evo-navy); }
.evo-bun__gtext { margin: 0; font-size: 15px; color: var(--evo-slate); }
.evo-bun__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; }
/* the card: the product-card language (grey well + card corner, white body, no shadow, no resting outline) */
.evo-bun__item { position: relative; display: flex; flex-direction: column; min-width: 0; margin: 0; background: var(--evo-white); transition: transform var(--evo-t-hover) var(--evo-ease); }
@media (hover: hover) { .evo-bun__item:hover { transform: scale(var(--evo-card-scale)); z-index: 1; } }
.evo-bun__img { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: var(--evo-wash); border-radius: 0 var(--evo-radius-card) 0 0; line-height: 0; }
.evo-bun .evo-bun__img img { display: block; width: 100%; height: 100% !important; object-fit: cover; padding: 0; border-radius: 0; }      /* the photography carries its own grey ground: no inset frame */
.evo-bun__tick { position: absolute; top: 12px; left: 12px; display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--evo-navy); color: var(--evo-white); opacity: 0; transform: scale(.7); transition: opacity var(--evo-t-hover) var(--evo-ease), transform var(--evo-t-hover) var(--evo-ease); }
.evo-bun__item.is-picked .evo-bun__tick { opacity: 1; transform: none; }
.evo-bun__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; flex: 1; padding: 16px 0 0; }
.evo-bun__desc { font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif; font-weight: var(--evo-caps-w); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--evo-slate); line-height: 1.35; }
.evo-bun__name { font-family: var(--e-global-typography-h3-font-family), serif; font-weight: 700; font-style: italic; font-size: 21px; line-height: 1.12; color: var(--evo-navy); }
.evo-bun__opts + .evo-bun__add, .evo-bun__cost + .evo-bun__price + .evo-bun__add { margin-top: auto; }
.evo-bun__body > .evo-bun__add { margin-top: auto !important; } .evo-bun__body { padding-bottom: 0; } .evo-bun__body::after { content: none; }
.evo-bun__cost { margin-bottom: 8px; font-weight: 500; font-size: 16px; color: var(--evo-navy); font-variant-numeric: tabular-nums; }
/* strength pills: the PDP selector grammar at card scale */
.evo-bun__opts { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.evo-bun .evo-bun__pill { min-height: 34px; padding: 0 12px; background: transparent !important; border: 1px solid color-mix(in srgb, var(--evo-navy) 30%, transparent) !important; border-radius: 0 !important; color: var(--evo-navy) !important; font-family: var(--e-global-typography-body-font-family), sans-serif; font-weight: 400; font-size: 13.5px; line-height: 1; cursor: pointer; box-shadow: none !important; transition: background-color var(--evo-t-hover) var(--evo-ease), border-color var(--evo-t-hover) var(--evo-ease), color var(--evo-t-hover) var(--evo-ease), border-radius var(--evo-t-hover) var(--evo-ease); }
.evo-bun .evo-bun__pill:hover, .evo-bun .evo-bun__pill:focus-visible { border-color: var(--evo-navy) !important; outline: 0; }
.evo-bun .evo-bun__pill.is-on { background: var(--evo-navy) !important; border-color: var(--evo-navy) !important; color: var(--evo-white) !important; border-radius: 0 var(--evo-radius-sig) 0 0 !important; }
/* Add: the solo-button interaction; picked = outlined "Added" with a minus to take it out again */
.evo-bun .evo-bun__add { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 46px; padding: 0 16px; cursor: pointer; background: var(--evo-navy) !important; color: var(--evo-white) !important; border: 1px solid var(--evo-navy) !important; border-radius: 0 !important; box-shadow: none !important;
	font-family: var(--e-global-typography-subheadcaps-font-family), sans-serif; font-weight: var(--evo-caps-w); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; line-height: 1; transition: border-radius var(--evo-t-hover) var(--evo-ease), background-color var(--evo-t-hover) var(--evo-ease), color var(--evo-t-hover) var(--evo-ease); }
.evo-bun .evo-bun__add:hover, .evo-bun .evo-bun__add:focus-visible { border-radius: 0 var(--evo-radius-sig) 0 0 !important; background: transparent !important; color: var(--evo-navy) !important; outline: 0; }
.evo-bun__item.is-picked .evo-bun__add { background: transparent !important; color: var(--evo-navy) !important; border-radius: 0 var(--evo-radius-sig) 0 0 !important; }
.evo-bun__plus { position: relative; width: 12px; height: 12px; flex: none; }
.evo-bun__plus::before, .evo-bun__plus::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1.5px; margin-top: -.75px; background: currentColor; transition: transform var(--evo-t-hover) var(--evo-ease); }
.evo-bun__plus::after { transform: rotate(90deg); }
.evo-bun__item.is-picked .evo-bun__plus::after { transform: rotate(0deg); }
/* summary: the bag's language */
.evo-bun__summary { position: sticky; top: calc(var(--evo-header-h, 80px) + 24px); display: flex; flex-direction: column; gap: 14px; padding: 26px 24px 24px; background: var(--evo-page); border-radius: 0 var(--evo-radius-card) 0 0; scroll-margin-top: 120px; }
.evo-bun__shead { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.evo-bun__stitle { margin: 0; font-family: var(--e-global-typography-h3-font-family), serif; font-weight: 700; font-style: italic; font-size: 24px; line-height: 1.1; color: var(--evo-navy); }
.evo-bun__count { 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-slate); }
.evo-bun__prog { height: 10px; background: var(--evo-white); border-radius: 0 var(--evo-radius-sig) 0 0; overflow: hidden; }
.evo-bun__prog span { display: block; width: 0; height: 100%; background: var(--evo-offer); border-radius: 0 var(--evo-radius-sig) 0 0; transition: width .4s var(--evo-ease); }
.evo-bun__hint { margin: -4px 0 0; font-size: 14.5px; font-weight: 400; color: var(--evo-navy); } .evo-bun__hint:empty { display: none; }
.evo-bun__tiers { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; gap: 6px; }
.evo-bun__tiers li { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 10px 6px 9px; background: var(--evo-white); color: var(--evo-slate); transition: background-color var(--evo-t-hover) var(--evo-ease), color var(--evo-t-hover) var(--evo-ease); }
.evo-bun__tiers li b { font-weight: 500; font-size: 15px; color: inherit; }
.evo-bun__tiers li span { font-size: 12px; font-weight: 300; }
.evo-bun__tiers li.is-on { background: var(--evo-offer); color: var(--evo-white); }
.evo-bun__lines { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; border-top: 1px solid var(--evo-line); }
.evo-bun__lines:empty { display: none; }
.evo-bun__lines li { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto 28px; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--evo-line); }
.evo-bun__lthumb { display: block; width: 44px; height: 44px; background: var(--evo-wash); border-radius: 0 var(--evo-radius-sig) 0 0; overflow: hidden; }
.evo-bun__lthumb img { width: 100%; height: 100%; object-fit: cover; }
.evo-bun__lname { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.evo-bun__lname b { font-weight: 500; font-size: 14.5px; color: var(--evo-navy); }
.evo-bun__lname small { font-size: 12.5px; color: var(--evo-slate); } .evo-bun__lname small:empty { display: none; }
.evo-bun__lprice { font-weight: 500; font-size: 14.5px; color: var(--evo-navy); font-variant-numeric: tabular-nums; }
.evo-bun .evo-bun__remove { position: relative; width: 28px; height: 28px; padding: 0; background: transparent !important; border: 0 !important; border-radius: 50% !important; box-shadow: none !important; cursor: pointer; color: var(--evo-slate) !important; transition: background-color var(--evo-t-hover) var(--evo-ease), color var(--evo-t-hover) var(--evo-ease); }
.evo-bun .evo-bun__remove:hover, .evo-bun .evo-bun__remove:focus-visible { background: var(--evo-white) !important; color: var(--evo-navy) !important; outline: 0; }
.evo-bun__remove::before, .evo-bun__remove::after { content: ""; position: absolute; left: 8px; right: 8px; top: 50%; height: 1.5px; margin-top: -.75px; background: currentColor; transform: rotate(45deg); }
.evo-bun__remove::after { transform: rotate(-45deg); }
.evo-bun__empty, .evo-bun__msg, .evo-bun__note { margin: 0; font-size: 14px; line-height: 1.45; color: var(--evo-slate); }
.evo-bun__empty[hidden] { display: none; } .evo-bun__msg:empty { display: none; } .evo-bun__msg { color: var(--evo-navy); font-weight: 400; }
.evo-bun__note { font-size: 12.5px; text-align: center; }
.evo-bun__totals { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.evo-bun__totals > div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-size: 15px; }
.evo-bun__totals dt, .evo-bun__totals dd { margin: 0; font-weight: 300; }
.evo-bun__totals dd { font-weight: 500; font-variant-numeric: tabular-nums; color: var(--evo-navy); }
.evo-bun__saving dt, .evo-bun__saving dd { color: var(--evo-offer) !important; }
.evo-bun__total { padding-top: 10px; border-top: 1px solid var(--evo-line); } .evo-bun__total dt { font-weight: 500; font-size: 17px; color: var(--evo-navy); } .evo-bun__total dd { font-size: 22px; letter-spacing: -.01em; }
.evo-bun .evo-bun__cta { width: 100%; min-height: 54px; padding: 0 20px !important; }
.evo-bun .evo-bun__cta:disabled { background: transparent !important; color: color-mix(in srgb, var(--evo-navy) 45%, transparent) !important; border-color: color-mix(in srgb, var(--evo-navy) 25%, transparent) !important; cursor: default; pointer-events: none; }
.evo-bun .evo-bun__cta:disabled::after { display: none; }
.evo-bun .evo-bun__cta.is-busy { opacity: .6; }
.evo-bun__bar { display: none; }
@media (max-width: 1024px) {
	.evo-bun { grid-template-columns: minmax(0, 1fr); }
	.evo-bun__summary { position: static; }
	.evo-bun__bar:not([hidden]) { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px var(--evo-gutter, 20px) calc(14px + env(safe-area-inset-bottom)); background: var(--evo-navy); color: var(--evo-white); border-radius: 0 var(--evo-radius-sig) 0 0; font-size: 14.5px; font-weight: 400; }
	.evo-bun__bar a { color: var(--evo-white) !important; 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; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
}
@media (max-width: 767px) {
	.evo-bun__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 12px; }
	.evo-bun__name { font-size: 18px; } .evo-bun__desc { font-size: 9.5px; }
	.evo-bun .evo-bun__pill { min-height: 32px; padding: 0 9px; font-size: 12.5px; }
	.evo-bun .evo-bun__add { min-height: 44px; font-size: 11px; letter-spacing: .14em; }
	.evo-bun__summary { padding: 22px 18px 20px; }
}
