/* Evopure — v3 pop-out bag and bag page (evopure-shop-v3.php), loaded only while evo_shop_v3_on().
   The first part is the signed-off mock's own CSS, lab shop-r3/r3.css of 6 Nov 15:47 (= tools/shop-1106/css/bag-drawer.css + the QA fixes),
   changed only where it has to be: its tokens live on body.evo-v3 (not :root), the bag page rules need the v3 page (.b3-p) and the pop-out rules
   the v3 drawer (.b3-d), and the test-only rules (picker, pop-up and cookie banner hiders) are gone. The build's own rules follow at the end. */
/* Round 3c (6 Nov). Test only: Master rebuilds this server-side. Checkout is the site's real .evo-btn from chrome.css. */
body.evo-v3{--n:#1D293B;--sf:#5F6875;--ln:rgba(29,41,59,.14);--tr:#F1F0EC;--co:#D9583A;--band:#F6F3EB;--nh:"neue-haas-grotesk-display","Helvetica Neue",Arial,sans-serif;--ns:"new-spirit",Georgia,serif;--dm:"DM Sans","Helvetica Neue",Arial,sans-serif;--ez:cubic-bezier(.22,.61,.36,1)}
.b3 *{box-sizing:border-box}
.b3{color:var(--n);font:400 15px/1.5 var(--dm)}
.b3 p{margin:0}
.b3 a{color:inherit}
.b3 button{-webkit-appearance:none;appearance:none}
/* free delivery */
.b3-ship{font-size:14px;line-height:1.4}
.b3-ship b{font-weight:600}
.b3-bar{display:block;margin-top:10px;height:8px;background:rgba(29,41,59,.1)}
.b3-bar i{display:block;height:100%;background:var(--n);transition:width 420ms var(--ez)}
/* line item: grid areas so the same markup sits as two columns on the bag page and stacks in the pop-out and on phones */
.b3-item{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);grid-template-areas:"img head" "img tools" "plan plan";column-gap:20px}
.b3-img{grid-area:img;display:block;align-self:start;aspect-ratio:1;overflow:hidden;background:#F4F4F2}
.b3-img img{display:block;width:100%;height:100%;object-fit:cover}
.b3-head{grid-area:head;min-width:0;padding-right:36px}
.b3-name{margin:0;font:700 italic 20px/1.15 var(--ns)!important;color:var(--n)!important}
.b3-desc{margin-top:3px!important;font-size:14px;line-height:1.3}
.b3-var{margin-top:3px!important;color:var(--sf);font-size:14px;line-height:1.3}
.b3-x,.b3-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:var(--n)!important;cursor:pointer;line-height:0!important;overflow:visible}
.b3-x svg,.b3-close svg{display:block;overflow:visible;flex:none}
.b3-x{position:absolute;top:-10px;right:-12px;opacity:.6;transition:opacity 200ms var(--ez)}
@media(hover:hover){.b3-x:hover{opacity:1}}
.b3-tools{grid-area:tools;display:flex;align-items:flex-end;justify-content:space-between;align-self:end;padding-top:12px}
.b3-qty{display:inline-flex;align-items:stretch;border:1px solid var(--ln)}
.b3-qty button{width:32px;height:32px;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;color:var(--n)!important;font:400 16px/1 var(--dm)!important;cursor:pointer;transition:background-color 200ms var(--ez),color 200ms var(--ez)}
@media(hover:hover){.b3-qty button:hover{background:var(--n)!important;color:#fff!important}}
.b3-qty span{display:flex;align-items:center;justify-content:center;min-width:28px;font-size:14px}
.b3-price{text-align:right;font:600 18px/1.1 var(--nh);white-space:nowrap}
.b3-price s{display:block;margin-bottom:3px;color:var(--sf);font:400 13px/1 var(--dm)}
.b3-planw{grid-area:plan}
/* toggle: the collection page's, on a light track */
.b3-seg{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:3px;margin-top:20px;background:var(--tr);isolation:isolate}
.b3-seg i{position:absolute;z-index:0;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);background:var(--n);border-radius:0 12px 0 0;transition:transform 460ms cubic-bezier(.3,1.25,.5,1)}
.b3-seg.is-o i{transform:translateX(100%)}
.b3-seg button{position:relative;z-index:1;min-height:44px;padding:0 6px!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;font:500 14px/1 var(--dm)!important;letter-spacing:0!important;text-transform:none!important;color:var(--n)!important;cursor:pointer;transition:color 300ms var(--ez)}
.b3-seg:not(.is-o) button:first-of-type,.b3-seg.is-o button:last-of-type{color:#fff!important}
/* subscription detail folds away smoothly on One-off; the page width never changes */
.b3-pl{display:grid;grid-template-rows:1fr;transition:grid-template-rows 320ms var(--ez),opacity 220ms var(--ez)}
.b3-pl>div{min-height:0;overflow:hidden}
.b3-pl.is-shut{grid-template-rows:0fr;opacity:0}
.b3-plan{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:12px;font-size:14px}
.b3-plan .sv{color:var(--co);font-weight:500}
.b3-sel{appearance:none;-webkit-appearance:none;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;padding:0 16px 0 0!important;margin:0;height:auto!important;font:400 14px var(--dm)!important;color:var(--n)!important;text-decoration:underline;text-underline-offset:3px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' fill='none' stroke='%231D293B' stroke-width='1.4'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:100% 55%!important;background-size:11px!important;width:auto!important;cursor:pointer}
.b3-then{margin-top:4px!important;color:var(--sf);font-size:14px}
.b3 .b3-item+.b3-item{margin-top:28px!important;padding-top:28px!important;border-top:1px solid var(--ln)}
.b3 .b3-item+.b3-item .b3-x{top:18px}
/* the one image moment */
.b3 .b3-band,.b3 .b3-band *{text-decoration:none!important}
.b3-band{position:relative;display:block;overflow:hidden;transition:border-radius 300ms var(--ez)}
@media(hover:hover){.b3-band:hover{border-radius:0 28px 0 0}}
.b3-band img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:100% 62%}
.b3-band__c{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.b3-band h3{margin:0;font:300 24px/1.12 var(--nh)!important;letter-spacing:-.012em;color:var(--n)!important}
.b3 .b3-band h3 b{font-weight:600!important}
.b3-add{display:inline-flex;align-items:center;gap:12px;margin-top:16px;font:500 15px/1.25 var(--dm);color:var(--n)!important}
.b3-add i{flex:none;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--n);border-radius:50%;transition:background-color 250ms var(--ez),color 250ms var(--ez)}
@media(hover:hover){.b3-band:hover .b3-add i{background:var(--n);color:#fff}}
.b3-add small{display:block;font:400 14px/1.25 var(--dm)}
/* checkout: the real button, full width */
.b3 .evo-btn.b3-go{display:flex!important;width:100%;--evo-cta-h:56px}
.b3-pay{display:flex;justify-content:center;gap:8px;margin-top:14px}
.b3-pay img{display:block;width:38px;height:24px}
/* pop-out */
body.evo-v3 .evo-bag__panel:has(.b3-d){background:#fff!important;width:min(480px,100vw)!important;border-radius:0!important;box-shadow:none!important;padding:0!important}
body.evo-v3 .evo-bag__inner:has(> .b3-d){padding:0!important;height:100%;display:flex;flex-direction:column;overflow:hidden}
.b3-d{display:flex;flex-direction:column;height:100%}
/* thin moving offers strip, styled like the site's announcement bar */
.b3-usp{flex:none;height:32px;overflow:hidden;background:var(--n);color:#fff;display:flex;align-items:center}
.b3-usp__t{display:flex;flex:none;white-space:nowrap;animation:b3-usp 48s linear infinite}
.b3-usp:hover .b3-usp__t{animation-play-state:paused}
.b3-usp span{display:inline-flex;align-items:center;gap:8px;padding:0 22px;font:600 10.5px/1 var(--nh);letter-spacing:.16em;text-transform:uppercase}
.b3-usp span::after{content:"";width:3px;height:3px;margin-left:44px;border-radius:50%;background:rgba(255,255,255,.5)}
.b3-usp svg{flex:none;display:block}
@keyframes b3-usp{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.b3-usp__t{animation:none}}
.b3-d__head{display:flex;justify-content:space-between;align-items:center;padding:22px 32px 0}
.b3-title{margin:0;font:300 italic 28px/1.1 var(--ns)!important;color:var(--n)!important;white-space:nowrap}
.b3 .b3-title b{font-weight:700!important}
.b3-close{margin-right:-10px!important}
.b3-d .b3-ship{padding:14px 32px 0}
.b3-d__scroll{flex:1;overflow:auto;padding:28px 32px 0}
.b3-d .b3-band{height:208px;margin:28px -32px 0}
.b3-d .b3-band__c{padding-left:32px;width:56%}
.b3-d__foot{padding:20px 32px 22px;border-top:1px solid var(--ln)}
.b3-sub{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px!important;font-size:15px}
.b3-sub b{font:600 22px/1.1 var(--nh)!important}
.b3-sub s{margin-right:10px;color:var(--sf);font:400 15px var(--dm)}
/* bag page */
html body.evo-v3.evo-shop--cart:has(.b3-p) .woocommerce,html body.evo-v3.evo-shop--cart:has(.b3-p) main,html body.evo-v3.evo-shop--cart:has(.b3-p) .page-content,html body.evo-v3.evo-shop--cart:has(.b3-p) .site-main,html body.evo-v3.evo-shop--cart:has(.b3-p) #content,html body.evo-v3.evo-shop--cart:has(.b3-p) article:not(.b3-item),html body.evo-v3.evo-shop--cart:has(.b3-p) .evo-shop__wrap{max-width:none!important;width:100%!important;padding:0!important;margin:0!important}
.b3-p{width:100%;display:block}
.b3-wrap{width:min(1320px,calc(100% - 120px));margin:0 auto}
.b3-cols{display:grid;grid-template-columns:minmax(0,1fr) 400px;column-gap:96px}
.b3-top{padding:34px 0 0}.b3-top .b3-cols{padding-bottom:26px;border-bottom:1px solid var(--ln)}
.b3-top .b3-cols{align-items:end}
.b3-top__l{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.b3-p .b3-title{font-size:44px!important;line-height:1}
.b3-back{display:inline-flex;align-items:center;gap:10px;font:500 15px var(--dm);color:var(--n)!important;text-decoration:none!important;white-space:nowrap}
.b3-back i{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--n);border-radius:50%;transition:background-color 250ms var(--ez),color 250ms var(--ez)}
@media(hover:hover){.b3-back:hover i{background:var(--n);color:#fff}}
.b3-p .b3-bar{height:10px}
.b3-g{padding-top:40px;align-items:start}
.b3-p .b3-item{grid-template-columns:400px minmax(0,1fr);grid-template-areas:"img head" "img plan" "img tools";grid-template-rows:auto auto 1fr;column-gap:40px}
.b3-p.is-many .b3-item{grid-template-columns:200px minmax(0,1fr)}
.b3-p .b3-name{font-size:30px!important}
.b3-p .b3-desc{margin-top:6px!important;font-size:16px}
.b3-p .b3-var{margin-top:4px!important;font-size:15px}
.b3-p .b3-seg{margin-top:28px}
.b3-p .b3-qty button{width:40px;height:40px}
.b3-p .b3-qty span{min-width:36px;font-size:15px}
.b3-p .b3-price{font-size:26px}
.b3-p .b3-price s{font-size:14px;margin-bottom:5px}
.b3-p .b3-x{top:-8px}
.b3-sum{position:sticky;top:112px;border:1px solid var(--ln);padding:28px}
.b3-sum h2{margin:0 0 14px;font:600 24px/1.15 var(--nh)!important;letter-spacing:-.012em;color:var(--n)!important}
.b3-sum dl{margin:0}
.b3-sum dl div{display:flex;justify-content:space-between;gap:16px;padding:5px 0}
.b3-sum dt,.b3-sum dd{margin:0;font-weight:400}
.b3-sum dd.q{color:var(--sf);font-size:14px}
.b3-sum .sv{color:var(--co)}
.b3-code{display:flex;margin-top:10px;border-bottom:1px solid var(--n)}
.b3-code input{flex:1;min-width:0;height:44px;border:0!important;background:none!important;box-shadow:none!important;outline:0!important;padding:0!important;font:400 15px var(--dm)!important;color:var(--n)!important}
.b3-code button{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;font:500 14px var(--dm)!important;color:var(--n)!important;cursor:pointer}
.b3-tot{display:flex;justify-content:space-between;align-items:baseline;margin:20px 0!important;font-weight:500}
.b3 .b3-tot b{font:600 28px/1.1 var(--nh)!important}
.b3-p .b3-band{aspect-ratio:2.7/1;min-height:460px;margin-top:72px}
.b3-p .b3-band__c{padding-left:72px;width:50%}
.b3-p .b3-band h3{font-size:44px!important}
.b3-p .b3-add{margin-top:22px;font-size:17px}
.b3-p .b3-add small{font-size:15px}
.b3-p .b3-add i{width:44px;height:44px}
.b3-after{height:88px}
.b3-stick{display:none}
@media(max-width:1180px){.b3-cols{grid-template-columns:minmax(0,1fr) 360px;column-gap:48px}.b3-wrap{width:calc(100% - 64px)}.b3-p .b3-item{grid-template-columns:280px minmax(0,1fr);column-gap:28px}}
@media(max-width:767px){
.b3-usp{height:30px}
.b3-d__head{padding:16px 20px 0}.b3-d .b3-ship{padding:10px 20px 0}.b3-d__scroll{padding:22px 20px 0}.b3-d__foot{padding:14px 20px 16px}
.b3-item,.b3-p .b3-item,.b3-p.is-many .b3-item{grid-template-columns:120px minmax(0,1fr);grid-template-areas:"img head" "img tools" "plan plan";grid-template-rows:auto 1fr auto;column-gap:16px}
.b3-d .b3-item{grid-template-columns:104px minmax(0,1fr)}
.b3-band,.b3-p .b3-band,.b3-d .b3-band{height:auto;min-height:0;aspect-ratio:auto;background:var(--tile)}
.b3-d .b3-band{margin:22px -20px 0}
.b3-band img{position:static;height:auto;aspect-ratio:3/2}
.b3-band picture img{-webkit-mask-image:linear-gradient(#000 86%,transparent);mask-image:linear-gradient(#000 86%,transparent)}
.b3-band__c,.b3-d .b3-band__c,.b3-p .b3-band__c{height:auto;width:100%;padding:20px;align-items:center;text-align:center}
.b3-add{text-align:left}
.b3-wrap{width:calc(100% - 40px)}
.b3-cols{grid-template-columns:1fr;row-gap:16px}
.b3-top{padding:22px 0 20px}
.b3-p .b3-title{font-size:34px!important}
.b3-back{font-size:13px;gap:6px}.b3-back i{width:28px;height:28px}
.b3-p .b3-bar{height:8px}
.b3-g{row-gap:28px;padding-top:24px}
.b3-p .b3-name{font-size:21px!important}
.b3-p .b3-desc{margin-top:3px!important;font-size:14px}.b3-p .b3-var{margin-top:3px!important;font-size:14px}
.b3-p .b3-qty button{width:32px;height:32px}.b3-p .b3-qty span{min-width:26px;font-size:14px}
.b3-p .b3-price{font-size:19px}.b3-p .b3-price s{font-size:13px}
.b3-p .b3-seg{margin-top:20px}
.b3-p .b3-x{top:-10px}
.b3-sum{position:static;padding:24px 20px}
.b3-p .b3-band{margin:36px -20px 0}
.b3-p .b3-band h3{font-size:26px!important}
.b3-p .b3-add{margin-top:14px;font-size:15px}.b3-p .b3-add small{font-size:14px}.b3-p .b3-add i{width:36px;height:36px}
.b3-after{height:96px}
.b3-sum .evo-btn.b3-go{display:none!important}
.b3-stick{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:#fff;border-top:1px solid var(--ln);padding:12px 20px calc(12px + env(safe-area-inset-bottom));align-items:center;gap:20px}
.b3-stick .t{font-size:13px;color:var(--sf);line-height:1.2}
.b3-stick b{display:block;font:600 20px/1.2 var(--nh)!important;color:var(--n)}
.b3-stick .evo-btn.b3-go{flex:1;--evo-cta-h:52px;padding:0 20px!important}
html body.evo-v3.evo-shop--cart:has(.b3-p) .evo-wa-float{bottom:92px!important}
}

/* your plan: the facts of the subscription, folds away on One-off */
.b3-p .b3-plan .sv{display:none}
.b3-facts{list-style:none;margin:14px 0 0;padding:0;display:grid;row-gap:10px}
.b3-facts li{display:grid;grid-template-columns:18px minmax(0,1fr);column-gap:12px;align-items:start;font-size:14.5px;line-height:1.45}
.b3-facts svg{display:block;margin-top:2px}
.b3-facts b{font-weight:600}
.b3-facts .co{color:var(--co);font-weight:500}
.b3-add small b{font-weight:600}
@media(max-width:767px){
.b3-top{padding:22px 0 0}.b3-top .b3-cols{padding-bottom:20px}
.b3-facts li{font-size:14px}
/* phones: every add-on is the same slim strip, words on the left */
.b3-band,.b3-p .b3-band,.b3-d .b3-band{height:188px!important;min-height:0;aspect-ratio:auto;background:var(--tile)}
.b3-p .b3-band{margin:32px -20px 0}
.b3-band img,.b3-d .b3-band img{position:absolute;inset:0;height:100%;aspect-ratio:auto;object-position:100% 62%;-webkit-mask-image:none!important;mask-image:none!important}
.b3-band__c,.b3-d .b3-band__c,.b3-p .b3-band__c{height:100%;width:52%;padding:0 0 0 20px;align-items:flex-start;text-align:left}
.b3-band h3,.b3-p .b3-band h3,.b3-d .b3-band h3{font-size:22px!important}
.b3-add,.b3-p .b3-add,.b3-d .b3-add{gap:10px;margin-top:12px;font-size:13px}
.b3-add i,.b3-p .b3-add i,.b3-d .b3-add i{width:32px;height:32px}
.b3-add small,.b3-p .b3-add small,.b3-d .b3-add small{font-size:13px}
/* stand-in pictures whose products fill most of the frame sit smaller on their own flat ground */
.b3-band.fit img{inset:auto 0 auto auto;top:50%;width:auto;height:150px;transform:translateY(-50%);object-fit:contain;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%),linear-gradient(transparent,#000 12%,#000 88%,transparent)!important;-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 14%),linear-gradient(transparent,#000 12%,#000 88%,transparent)!important;mask-composite:intersect}
.b3-band.fit .b3-band__c{width:50%}
}
@media(max-width:767px){.b3-add small .v{display:block}.b3-add small .c{display:none}}
/* bag page, desktop: quantity and price sit under the name beside the X, and the picture ends where the card ends */
@media(min-width:768px){
.b3-p .b3-item{grid-template-columns:320px minmax(0,1fr);grid-template-areas:"img head" "img tools" "img plan";grid-template-rows:auto auto 1fr}
.b3-p.is-many .b3-item{grid-template-columns:220px minmax(0,1fr)}
.b3-p .b3-img{aspect-ratio:auto;align-self:stretch;min-height:320px}
.b3-p.is-many .b3-img{min-height:220px}
.b3-p .b3-tools{align-self:start;align-items:center;padding-top:16px}
.b3-p .b3-planw{align-self:start}
.b3-p .b3-seg{margin-top:24px}
}
.b3-sico *{vector-effect:non-scaling-stroke;stroke-width:1.4px}
.b3-usp .b3-sico *{stroke-width:1.3px}

/* toggle: exactly the collection page's (navy track, light block, caps; outer corner rounds on One-off) */
.b3 .b3-seg{padding:4px;background:var(--n);border-radius:0;transition:border-radius 300ms var(--ez)}
.b3 .b3-seg.is-o,.b3 .b3-seg:has(button:last-of-type:hover){border-top-right-radius:18px}
.b3 .b3-seg i{top:4px;bottom:4px;left:4px;width:calc(50% - 4px);background:#FAF9F6;border-radius:0 14px 0 0}
.b3 .b3-seg button{min-height:42px;padding:0 4px!important;font:600 12px/1 var(--nh)!important;letter-spacing:.1em!important;text-transform:uppercase!important;color:#FAF9F6!important;transition:color 320ms var(--ez)}
.b3 .b3-seg:not(.is-o) button:first-of-type,.b3 .b3-seg.is-o button:last-of-type{color:var(--n)!important}
/* one-off panel: only for a single item on desktop */
.b3-one{display:none}
.b3-sw{padding:0!important;margin:0;border:0!important;background:none!important;box-shadow:none!important;font:inherit!important;color:var(--n)!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media(min-width:768px){
.b3-p:not(.is-many) .b3-stack{display:grid}
.b3-p:not(.is-many) .b3-stack>*{grid-area:1/1;transition:opacity 260ms var(--ez),visibility 260ms}
.b3-p:not(.is-many) .b3-stack .b3-pl.is-shut{grid-template-rows:1fr;visibility:hidden}
.b3-p:not(.is-many) .b3-one{display:grid;align-content:start;margin-top:0;padding-top:14px;opacity:0;visibility:hidden}
.b3-p:not(.is-many) .b3-item.is-oo .b3-one{opacity:1;visibility:visible}
}
.b3-price s.ghost{visibility:hidden}

/* points in the bag summary, same rules and look as checkout */
.b3-pts{margin-top:14px;border-bottom:1px solid var(--ln)}
.b3-pts__t{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px 0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;font:500 14px var(--dm)!important;color:var(--n)!important;cursor:pointer}
.b3-pts__t svg{transition:transform 300ms var(--ez)}
.b3-pts.is-open .b3-pts__t svg{transform:rotate(180deg)}
.b3-pts__b{display:grid;grid-template-rows:0fr;transition:grid-template-rows 300ms var(--ez)}
.b3-pts__b>div{min-height:0;overflow:hidden}
.b3-pts.is-open .b3-pts__b{grid-template-rows:1fr}
.b3-pts.is-open .b3-pts__b>div{padding-bottom:14px}
.b3-pts p{font-size:14px;line-height:1.5}
.b3 .b3-pts b{font-weight:600!important}
.b3-pts__use{display:inline-block;margin-top:10px;padding:10px 16px!important;border:1px solid var(--n)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;font:500 14px var(--dm)!important;color:var(--n)!important;text-decoration:none!important;cursor:pointer;transition:background-color 200ms var(--ez),color 200ms var(--ez),border-radius 300ms var(--ez)}
@media(hover:hover){.b3-pts__use:hover{background:var(--n)!important;color:#fff!important;border-top-right-radius:8px!important}}
.b3-pts__n{margin-top:8px!important;font-size:12.5px!important;color:var(--sf)}
/* ---- QA fixes 6 Nov (stress test across phones, folds, tablets, laptops) ---- */
/* bold: the live shop.css sets .woocommerce b to 500 */
.b3 b,.b3 strong{font-weight:600!important}
.b3 .b3-sum h2{font-weight:300!important}.b3 .b3-sum h2 b{font-weight:600!important}
.b3 p,.b3 h3,.b3 small{text-wrap:pretty}.b3 .b3-band h3{text-wrap:balance}
/* the add-on band never forces its own width; it follows the page */
.b3-p .b3-band{width:100%;min-height:0;aspect-ratio:2.7/1}
/* tablets and open folds (768 to 1100): one column, summary under the items */
@media(min-width:768px) and (max-width:1100px){
.b3-p .b3-cols{grid-template-columns:minmax(0,1fr);row-gap:28px}
.b3-p .b3-top .b3-cols{row-gap:18px}
.b3-p .b3-sum{position:static}
.b3-p .b3-item,.b3-p.is-many .b3-item{grid-template-columns:240px minmax(0,1fr);column-gap:28px}
.b3-p .b3-img{min-height:240px}
.b3-p .b3-band{aspect-ratio:2.2/1}
}
@media(min-width:1101px) and (max-width:1280px){.b3-p .b3-item{grid-template-columns:260px minmax(0,1fr)}.b3-p .b3-img{min-height:260px}}
/* large phones and small tablets (600 to 767): keep the phone layout but in a centred 640 column */
@media(min-width:600px) and (max-width:767px){.b3-p .b3-wrap{width:min(640px,calc(100% - 40px))}.b3-p .b3-band{margin-left:0;margin-right:0}}
/* phones: tap targets of at least 40px */
@media(max-width:767px){
.b3-qty button,.b3-p .b3-qty button{width:40px;height:40px}
.b3-sel{padding:11px 18px 11px 0!important;margin:-11px 0!important}
.b3-sw,.b3-x{min-height:40px}
.b3-code button{min-width:44px;height:44px}
}
/* the add-on strip on smaller phones: the photo sits a little smaller on its own ground so words never touch the product */
@media(max-width:400px){
.b3-band img,.b3-d .b3-band img{inset:auto 0 auto auto!important;top:50%!important;width:auto!important;height:148px!important;transform:translateY(-50%);object-fit:contain;-webkit-mask-image:linear-gradient(90deg,transparent,#000 16%),linear-gradient(transparent,#000 14%,#000 86%,transparent)!important;-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 16%),linear-gradient(transparent,#000 14%,#000 86%,transparent)!important;mask-composite:intersect}
.b3-band__c,.b3-d .b3-band__c,.b3-p .b3-band__c,.b3-band.fit .b3-band__c{width:47%!important}
.b3-band h3,.b3-p .b3-band h3,.b3-d .b3-band h3{font-size:20px!important}
}
@media(max-width:340px){.b3-band h3,.b3-p .b3-band h3,.b3-d .b3-band h3{font-size:18px!important}.b3-add,.b3-add small{font-size:12px!important}.b3-head{padding-right:40px}.b3-name,.b3-p .b3-name{font-size:19px!important}}
/* pop-out on wider screens: a little more room between the words and the product */
@media(min-width:768px){.b3-d .b3-band__c{width:50%}}
@media(max-width:767px){.b3-p .b3-band{width:auto}}
@media(max-width:360px){
.b3-item,.b3-p .b3-item,.b3-p.is-many .b3-item{grid-template-columns:96px minmax(0,1fr);column-gap:14px}
.b3-tools{flex-wrap:wrap;gap:8px 12px}
.b3-qty button,.b3-p .b3-qty button{width:36px;height:40px}
.b3-qty span,.b3-p .b3-qty span{min-width:24px}
}
@media(max-width:340px){.b3-add i{display:none}.b3-band__c,.b3-d .b3-band__c,.b3-p .b3-band__c,.b3-band.fit .b3-band__c{padding-left:16px!important}}
@media(max-width:767px){.b3-p .b3-band{aspect-ratio:auto!important;width:auto!important}}


/* ================================================================ build: what the mock had no need for
   cart.js hooks the v3 markup carries (.evo-bag__head / __item / __qty / __foot / __close): cart.css rules on them stand down */
.b3-d .evo-bag__head{position:static;padding:22px 32px 0;background:none}
.b3 .evo-bag__item{padding:0;border-bottom:0}
.b3 .evo-bag__qty{height:auto}
.b3-d .evo-bag__foot{position:static;margin:0;box-shadow:none;background:#fff;z-index:auto}
.b3-d .evo-bag__close{margin-right:-10px}
.b3-d .evo-btn.evo-bag__checkout{min-height:56px;margin-top:0}      /* cart.css sizes today's button at 50px with a 12px gap */
.evo-bag.is-busy .b3-d__scroll,.evo-bag.is-busy .b3-d__foot,.b3-p.is-busy .b3-g{opacity:.55;pointer-events:none;transition:opacity 200ms var(--ez)}
.b3-qty--fixed{display:inline-flex;align-items:center;min-height:32px;padding:0 2px;border:0!important;font-size:14px;color:var(--sf)}
.b3-tag{margin:14px 0 0!important;font:600 12px/1.2 var(--nh);letter-spacing:.1em;text-transform:uppercase;color:var(--n)}
.b3-tag.is-gift{color:var(--co)}
.b3-band picture{display:contents}
.b3-band.fit img{object-fit:contain}
/* the gift line (evopure-gift.php) sits under the delivery bar, in the bar's own type */
.b3 .evo-bag__ship--gift{padding:10px 0 0;border:0;background:none}
.b3-d .evo-bag__ship--gift{padding:10px 32px 0}
.b3 .evo-bag__ship--gift p{margin:0;font-size:14px;line-height:1.4;color:var(--n)}
.b3 .evo-bag__ship--gift p b{font-weight:600}
.b3 .evo-bag__ship--gift .evo-bag__bar{display:block;margin-top:10px;height:8px;border-radius:0;background:rgba(29,41,59,.1)}
.b3-p .evo-bag__ship--gift .evo-bag__bar{height:10px}
.b3 .evo-bag__ship--gift .evo-bag__bar i{border-radius:0;background:var(--n)}
/* bag page: the notices WooCommerce prints, a discount code row with Remove, the code's message, the WPGens points box in the mock's type */
.b3-notes:empty{display:none}
.b3-notes{padding-top:20px}
.b3-notes .woocommerce-message,.b3-notes .woocommerce-error,.b3-notes .woocommerce-info{margin:0}
.b3-sum .b3-coupon dt{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.b3-rmcode{padding:0!important;border:0!important;background:none!important;box-shadow:none!important;font:400 13px var(--dm)!important;letter-spacing:0!important;text-transform:none!important;color:var(--sf)!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:0}
.b3-codemsg:empty{display:none}
.b3-codemsg{margin-top:8px;font-size:13.5px;line-height:1.4;color:var(--co)}
.b3-codemsg.is-ok{color:var(--n)}
.b3-codemsg ul,.b3-codemsg li{margin:0;padding:0;list-style:none;background:none;border:0}
.b3-pts .wpgens-points-redemption-block,.b3-pts .wpgens-points-checkout-ui,.b3-pts .wpgens-accordion{margin:0;padding:0;border:0;background:none;box-shadow:none}
.b3-pts .wpgens-accordion h3{display:none}
.b3-pts .wpgens-accordion-inner{display:block!important;padding:0;border:0}
.b3-pts .wpgens-accordion-content,.b3-pts .wpgens-points-user-balance{padding:0;font-size:14px;line-height:1.5;color:var(--n)}
.b3-pts .wpgens-points-user-balance strong,.b3-pts .wpgens-points-user-balance b{font-weight:600}
.b3-pts .wpgens-loyalty-button,.b3-pts a.button,.b3-pts .wpgens-accordion-content a{display:inline-block;margin-top:10px;padding:10px 16px!important;border:1px solid var(--n)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;font:500 14px var(--dm)!important;letter-spacing:0!important;text-transform:none!important;color:var(--n)!important;text-decoration:none!important;cursor:pointer;min-height:0;transition:background-color 200ms var(--ez),color 200ms var(--ez),border-radius 300ms var(--ez)}
@media(hover:hover){.b3-pts .wpgens-loyalty-button:hover,.b3-pts .wpgens-accordion-content a:hover{background:var(--n)!important;color:#fff!important;border-top-right-radius:8px!important}}
.b3-pts .wpgens-redeem-points-form-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}
.b3-pts input{height:40px;border:1px solid var(--ln);padding:0 12px;font:400 14px var(--dm)}
/* empty pop-out: today's navy Subscribe & Save panel in the same type */
.b3-d .evo-bag__empty{padding:4px 0 28px}
.b3-d .evo-bag__empty-title{margin:0 0 18px;font:700 italic 22px/1.15 var(--ns);color:var(--n)}
.b3-d .evo-bag__promo{border-radius:0 14px 0 0}
.b3-d .evo-bag__promo-title{font:700 italic 24px/1.1 var(--ns)!important}
.b3-d .evo-bag__promo li{font:400 15px/1.4 var(--dm)}
.b3-d .evo-bag__eyebrow{font:300 20px/1.2 var(--nh);letter-spacing:-.01em;text-transform:none;color:var(--n)}
.b3-d .evo-bag__up-name{font-family:var(--ns)}
.b3-d .evo-btn{display:flex;width:100%}
/* the empty bag PAGE (WooCommerce's cart-empty.php, today's markup) in the v3 type */
body.evo-v3.evo-shop--cart .evo-cart__empty .evo-shop__title{font:700 italic 44px/1.05 var(--ns);color:var(--n)}
body.evo-v3.evo-shop--cart .evo-cart__empty .evo-bag__promo{border-radius:0 14px 0 0}
@media(max-width:767px){.b3-d .evo-bag__head{padding:16px 20px 0}.b3-d .evo-bag__ship--gift{padding:8px 20px 0}.b3-notes{padding-top:12px}}
.b3-head .b3-tag{margin-top:10px!important}
/* product page add: the pop-out opening is the feedback, not WooCommerce's spinner, tick or "View bag" link */
body.evo-v3.single-product .single_add_to_cart_button.evo-v3-busy{opacity:.6;pointer-events:none}
body.evo-v3.single-product .single_add_to_cart_button.loading::after,body.evo-v3.single-product .single_add_to_cart_button.added::after{display:none!important;content:none!important}
body.evo-v3.single-product a.added_to_cart{display:none!important}
/* the points box's "Log In" (WPGens): the mock's underlined text link */
html body.evo-v3 .b3-pts a.wpgens-loyalty-button,html body.evo-v3 .b3-pts .wpgens-points-login-button-wrapper a{display:inline-block!important;min-height:0!important;margin-top:8px!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;font:500 14px/1.4 var(--dm)!important;letter-spacing:0!important;text-transform:none!important;color:var(--n)!important;text-decoration:underline!important;text-underline-offset:3px}
@media(hover:hover){html body.evo-v3 .b3-pts a.wpgens-loyalty-button:hover{background:none!important;color:var(--n)!important}}
