/* MONAVIE v2 DESIGN SYSTEM - Operate Worldwide */
:root{
--mv-purple:#8300E9;--mv-purple-deep:#672B91;--mv-purple-900:#2A0B4A;--mv-purple-50:#F5EDFC;
--mv-green:#58B735;--mv-green-900:#2F6B1C;--mv-black:#231F20;--mv-white:#FFFFFF;
--mv-ink:#231F20;--mv-ink-2:#4A4A50;--mv-ink-3:#6E6E76;
--mv-line:#E2E2E6;--mv-line-strong:#C9C9D0;--mv-surface:#FFFFFF;--mv-surface-2:#F7F6F8;
--mv-font-display:'Barlow Condensed','Helvetica Neue',Arial,sans-serif;
--mv-font-body:'Open Sans',-apple-system,BlinkMacSystemFont,Arial,sans-serif;
--mv-t-body:1.0625rem;--mv-t-small:0.9375rem;
--mv-s1:0.5rem;--mv-s2:0.75rem;--mv-s3:1rem;--mv-s4:1.5rem;--mv-s5:2rem;--mv-s6:3rem;--mv-s7:4.5rem;--mv-s8:6rem;
--mv-radius:10px;--mv-radius-lg:16px;--mv-tap:48px;
}
body.mv2{font-family:var(--mv-font-body);font-size:var(--mv-t-body);line-height:1.65;color:var(--mv-ink);-webkit-font-smoothing:antialiased}
body.mv2 p{font-size:var(--mv-t-body);line-height:1.7}
body.mv2 h1,body.mv2 h2,body.mv2 h3{font-family:var(--mv-font-display);font-weight:600;letter-spacing:.01em;color:var(--mv-ink);line-height:1.1}
body.mv2 :focus-visible{outline:3px solid var(--mv-purple);outline-offset:2px;border-radius:4px}

/* GRID */
.mv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--mv-s4)}

/* CARD */
.mv-card{background:var(--mv-surface);border:1px solid var(--mv-line);border-radius:var(--mv-radius-lg);padding:var(--mv-s4);display:flex;flex-direction:column;gap:var(--mv-s3);transition:border-color .18s ease,box-shadow .18s ease}
.mv-card:hover{border-color:var(--mv-line-strong);box-shadow:0 2px 16px rgba(0,0,0,.06)}
.mv-card__head{display:flex;align-items:baseline;gap:var(--mv-s2);flex-wrap:wrap}
.mv-card__qty{font-family:var(--mv-font-display);font-size:1.875rem;font-weight:600;line-height:1;color:var(--mv-ink);letter-spacing:.01em}
.mv-card__count{font-size:var(--mv-t-small);color:var(--mv-ink-2);line-height:1}
.mv-card__media{aspect-ratio:1/1;background:var(--mv-surface-2);border-radius:var(--mv-radius);overflow:hidden;position:relative;display:block}
.mv-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;padding:var(--mv-s2);transform:translateY(18%);transition:transform 900ms cubic-bezier(.33,.9,.5,1);will-change:transform}
.mv-card:hover .mv-card__media img,.mv-card:focus-within .mv-card__media img{transform:translateY(0);transition:transform 300ms cubic-bezier(.2,.9,.3,1.02)}
@media (prefers-reduced-motion:reduce){.mv-card__media img{transform:none;transition:none}.mv-card:hover .mv-card__media img{transform:none}}
@media (hover:none){.mv-card__media img{transform:translateY(0)}}
.mv-ph{font-size:var(--mv-t-small);color:var(--mv-ink-3)}

/* PURCHASE OPTIONS */
.mv-opts{display:flex;flex-direction:column;gap:var(--mv-s2)}
.mv-opt{position:relative;display:block;border:1.5px solid var(--mv-line);border-radius:var(--mv-radius);padding:var(--mv-s3) var(--mv-s3) var(--mv-s3) 2.75rem;cursor:pointer;transition:border-color .15s ease,background .15s ease}
.mv-opt:hover{border-color:var(--mv-line-strong)}
.mv-opt__radio{position:absolute;top:var(--mv-s3);left:var(--mv-s3);width:22px;height:22px;margin:0;accent-color:var(--mv-purple);cursor:pointer}
.mv-opt__body{display:block}
.mv-opt__row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--mv-s2);margin-bottom:2px}
.mv-opt__label{font-size:var(--mv-t-body);font-weight:700;color:var(--mv-ink);letter-spacing:-.005em}
.mv-opt__price{font-family:var(--mv-font-display);font-size:1.75rem;font-weight:600;line-height:1;color:var(--mv-ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.mv-opt__unit{display:block;font-size:var(--mv-t-small);color:var(--mv-ink-2);line-height:1.4}
.mv-opt__save{color:var(--mv-green-900);font-weight:700}
.mv-opt__note{display:block;font-size:.875rem;color:var(--mv-ink-3);line-height:1.45;margin-top:var(--mv-s1)}
.mv-opt:has(.mv-opt__radio:checked){border-color:var(--mv-purple);background:var(--mv-purple-50)}

/* QUANTITY + CART */
.mv-cart{display:flex;gap:var(--mv-s2);align-items:stretch}
.mv-qty{display:flex;align-items:stretch;border:1.5px solid var(--mv-line-strong);border-radius:var(--mv-radius);overflow:hidden;flex:0 0 auto}
.mv-qty__btn{width:44px;min-height:var(--mv-tap);border:0;background:var(--mv-surface-2);color:var(--mv-ink);font-size:1.375rem;line-height:1;cursor:pointer;transition:background .12s ease}
.mv-qty__btn:hover{background:var(--mv-line)}
.mv-qty__input{width:52px;min-height:var(--mv-tap);border:0;border-left:1.5px solid var(--mv-line-strong);border-right:1.5px solid var(--mv-line-strong);text-align:center;font-family:var(--mv-font-body);font-size:var(--mv-t-body);font-weight:700;color:var(--mv-ink);font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.mv-qty__input::-webkit-outer-spin-button,.mv-qty__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.mv-btn{flex:1;min-height:var(--mv-tap);border:0;border-radius:var(--mv-radius);background:var(--mv-purple);color:var(--mv-white);font-family:var(--mv-font-display);font-size:1.125rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;transition:background .15s ease}
.mv-btn:hover{background:#6E00C4}
.mv-btn[disabled]{opacity:.6;cursor:default}
.mv-card__meta{font-size:.875rem;color:var(--mv-ink-3);text-align:center;border-top:1px solid var(--mv-line);padding-top:var(--mv-s2);margin-top:auto}

/* PHONE CARD */
.mv-card--phone{background:var(--mv-surface-2);border-style:dashed;justify-content:center;text-align:center}
.mv-tel{font-family:var(--mv-font-display);font-size:1.5rem;font-weight:600;color:var(--mv-purple-900);text-decoration:none;min-height:var(--mv-tap);display:inline-flex;align-items:center;justify-content:center}

@media (prefers-reduced-motion:reduce){body.mv2 *{animation-duration:.01ms !important;transition-duration:.01ms !important}}

/* ===== HERO ===== */
.mv-hero{position:relative;background:#1B0733;overflow:hidden;min-height:calc(100svh - var(--mv-chrome,117px));display:grid;grid-template-columns:1fr 1fr;align-items:center;isolation:isolate;column-gap:0}
body.mv2 .mv-hero__copy{grid-column:2}
.mv-hero__glow{position:absolute;left:50%;top:0;width:100vw;height:100%;transform:translateX(-50%);background:radial-gradient(ellipse 38% 62% at 40% 52%,rgba(131,0,233,.6),transparent 68%),radial-gradient(ellipse 40% 45% at 72% 22%,rgba(103,43,145,.28),transparent 65%);z-index:0;pointer-events:none}
.mv-hero__stage{position:absolute;left:0;right:48%;bottom:0;top:auto;z-index:1;display:flex;justify-content:flex-end;align-items:flex-end;padding-right:clamp(1rem,3vw,3.5rem);pointer-events:none;overflow:visible}
.mv-hero__bottle{height:min(150svh,1500px);width:auto;max-width:none;display:block;filter:drop-shadow(0 24px 70px rgba(0,0,0,.65));position:relative;z-index:2;margin-bottom:calc(-1 * var(--mv-bottle-sink,34%));transform:perspective(var(--mv-persp,1800px)) rotateX(var(--mv-flare,6deg));transform-origin:50% 0%;will-change:transform}
.mv-hero__copy{position:relative;z-index:3;padding:var(--mv-s5) var(--mv-s4) var(--mv-s5) clamp(1.5rem,3vw,3rem);color:#fff;max-width:34rem;justify-self:start}
body.mv2 .mv-hero__eyebrow{font-family:var(--mv-font-display);font-size:clamp(1.375rem,2.2vw,2rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mv-green);margin:0 0 var(--mv-s2);line-height:1.1}
.mv-hero__title{font-family:var(--mv-font-display);font-weight:600;font-size:clamp(3rem,7vw,5.75rem);line-height:.92;letter-spacing:.01em;text-transform:uppercase;color:#FFFFFF !important;margin:0 0 var(--mv-s3);text-shadow:0 2px 40px rgba(0,0,0,.4)}
body.mv2 .mv-hero__sub{font-size:clamp(1.0625rem,1.4vw,1.25rem);line-height:1.6;color:rgba(255,255,255,.82);margin:0 0 var(--mv-s4);max-width:30rem}
.mv-hero__cta{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 var(--mv-s5);border-radius:var(--mv-radius);background:var(--mv-purple);color:#fff;font-family:var(--mv-font-display);font-size:1.1875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;transition:background .15s ease,transform .15s ease}
.mv-hero__cta:hover{background:#9A1FFF;color:#fff;transform:translateY(-1px)}
.mv-hero__scroll{position:absolute;left:50%;bottom:var(--mv-s4);transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.5);font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
@media (max-width:980px){
.mv-hero{grid-template-columns:1fr;min-height:auto;padding-bottom:var(--mv-s5)}
.mv-hero__stage{order:2;padding-top:0}
.mv-hero__copy{order:1;padding:var(--mv-s6) var(--mv-s4) var(--mv-s3);max-width:none;text-align:center}
.mv-hero__sub{margin-left:auto;margin-right:auto}
.mv-hero__bottle{max-height:44vh}
.mv-hero__scroll{display:none}
}

/* ===== HEADER ===== */
.mv-topbar{background:#231F20;color:#fff;font-size:.8125rem;letter-spacing:.03em;text-align:center;padding:9px var(--mv-s3);line-height:1.4}
.mv-topbar a{color:#fff;text-decoration:none;font-weight:700;border-bottom:1px solid rgba(255,255,255,.35)}
.mv-topbar a:hover{color:var(--mv-green)}
.mv-topbar__sep{opacity:.4;margin:0 .6em}
.mv-head{position:sticky;top:0;z-index:999;background:#fff;border-bottom:1px solid var(--mv-line);box-shadow:0 0 0 rgba(0,0,0,0);transition:box-shadow .25s ease}

.mv-head__in{max-width:1440px;margin:0 auto;padding:var(--mv-s3) var(--mv-s4);display:flex;align-items:center;justify-content:space-between;gap:var(--mv-s4)}
.mv-head__logo{display:inline-flex;align-items:center;color:#231F20;text-decoration:none;flex:0 0 auto}
.mv-head__logo svg{height:32px;width:auto;display:block}
.mv-head__logo:hover{color:var(--mv-purple)}
.mv-nav{display:flex;align-items:center;gap:var(--mv-s1)}
.mv-nav__link{display:inline-flex;align-items:center;min-height:var(--mv-tap);padding:0 var(--mv-s3);font-size:1rem;font-weight:600;color:var(--mv-ink-2);text-decoration:none;border-radius:var(--mv-radius);transition:color .12s ease,background .12s ease}
.mv-nav__link:hover{color:var(--mv-ink);background:var(--mv-surface-2)}
.mv-nav__link.is-current{color:var(--mv-ink)}
.mv-cartbtn{display:inline-flex;align-items:center;gap:.5em;min-height:var(--mv-tap);padding:0 var(--mv-s4);margin-left:var(--mv-s2);background:var(--mv-purple);color:#fff;border-radius:var(--mv-radius);font-family:var(--mv-font-display);font-size:1rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;text-decoration:none;transition:background .15s ease}
.mv-cartbtn:hover{background:#6E00C4;color:#fff}
.mv-cartbtn__n{background:rgba(255,255,255,.25);border-radius:999px;min-width:1.5em;padding:.1em .4em;font-size:.8125rem;text-align:center;font-variant-numeric:tabular-nums}
@media (max-width:860px){
.mv-head__in{padding:var(--mv-s2) var(--mv-s3);gap:var(--mv-s2)}
.mv-nav__link{padding:0 var(--mv-s2);font-size:.9375rem}
.mv-head__logo svg{height:34px}
.mv-topbar{font-size:.75rem}
.mv-topbar__sep{display:inline}
}

/* ===== TRUST STRIP ===== */
.mv-trust{background:var(--mv-surface-2);border-top:1px solid var(--mv-line);border-bottom:1px solid var(--mv-line)}
.mv-trust__in{max-width:1200px;margin:0 auto;padding:var(--mv-s6) var(--mv-s4);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--mv-s5)}
.mv-trust__item{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--mv-s2)}
.mv-trust__icon{width:44px;height:44px;color:var(--mv-green);flex:0 0 auto}
.mv-trust__icon svg{width:100%;height:100%;display:block}
.mv-trust__h{font-family:var(--mv-font-display);font-size:1.25rem;font-weight:600;color:var(--mv-ink);line-height:1.2}
.mv-trust__p{font-size:var(--mv-t-small);color:var(--mv-ink-2);line-height:1.55;max-width:24ch}
.mv-trust__p a{color:var(--mv-purple);font-weight:700;text-decoration:none;white-space:nowrap}
.mv-trust__p a:hover{text-decoration:underline}

/* ===== SECTION INTRO ===== */
.mv-intro{text-align:center;max-width:none;margin:0 auto var(--mv-s5)}
body.mv2 .mv-intro p{text-wrap:balance}
.mv-intro h2{font-size:clamp(1.75rem,3.5vw,2.5rem);margin:0 0 var(--mv-s2);text-transform:uppercase;letter-spacing:.02em}
.mv-intro p{color:var(--mv-ink-2);margin:0}
body.mv2 .mv-fruits .mv-intro{max-width:none}
body.mv2 .mv-fruits .mv-intro p{text-wrap:balance}

/* ===== CART BUTTON (icon + count) ===== */
.mv-cartbtn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;position:relative;min-height:var(--mv-tap);min-width:var(--mv-tap);padding:0 var(--mv-s3);margin-left:var(--mv-s2);background:transparent;color:var(--mv-ink);border:1.5px solid var(--mv-line-strong);border-radius:var(--mv-radius);text-decoration:none;transition:border-color .15s ease,background .15s ease,color .15s ease}
.mv-cartbtn:hover{border-color:var(--mv-purple);background:var(--mv-purple-50);color:var(--mv-purple-900)}
.mv-cartbtn__ico{width:22px;height:22px;flex:0 0 auto}
.mv-cartbtn__ico svg{width:100%;height:100%;display:block}
.mv-cartbtn__n{position:absolute;top:-7px;right:-7px;min-width:21px;height:21px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;background:var(--mv-purple);color:#fff;border-radius:999px;font-family:var(--mv-font-body);font-size:.75rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px #fff}
.mv-cartbtn__n[data-n="0"]{display:none}
.mv-cartbtn__label{font-family:var(--mv-font-display);font-size:1rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
@media (max-width:860px){.mv-cartbtn__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.mv-cartbtn{padding:0;width:var(--mv-tap)}}

/* ===== NINETEEN FRUITS ===== */
.mv-fruits{background:var(--mv-surface-2);padding:var(--mv-s7) 0}
.mv-fruits__in{max-width:1200px;margin:0 auto;padding:0 var(--mv-s4)}
.mv-fruits__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--mv-s4) var(--mv-s3);margin-top:var(--mv-s6)}
.mv-fruit{text-align:center;display:flex;flex-direction:column;align-items:center}
.mv-fruit__disc{width:132px;height:132px;border-radius:50%;border:1px solid rgba(94,15,10,.22);background:#fff;display:grid;place-items:center;margin-bottom:var(--mv-s2);position:relative;overflow:visible;transition:transform .2s ease,border-color .2s ease}
.mv-fruit:hover .mv-fruit__disc{transform:translateY(-3px);border-color:rgba(94,15,10,.5)}
.mv-fruit__disc img{width:118px;height:118px;object-fit:contain;display:block}
.mv-fruit__n{font-family:var(--mv-font-display);font-size:1.0625rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#5E0F0A;line-height:1.2;margin-bottom:4px}
.mv-fruit__d{font-size:.875rem;line-height:1.5;color:var(--mv-ink-2);max-width:20ch}
.mv-fruits__note{margin-top:var(--mv-s6);padding-top:var(--mv-s4);border-top:1px solid rgba(94,15,10,.15);text-align:center;font-size:.8125rem;color:var(--mv-ink-3);font-style:italic}
@media (max-width:640px){
.mv-fruits__grid{grid-template-columns:repeat(2,1fr);gap:var(--mv-s4) var(--mv-s2)}
.mv-fruit__disc{width:108px;height:108px}
.mv-fruit__disc img{width:96px;height:96px}
.mv-fruit__d{font-size:.8125rem}
}

/* ===== REFERRAL PAGE ===== */
.mv-draft{position:sticky;top:0;z-index:50;background:#FFF4D6;border-bottom:2px solid #E8B21A;color:#5C4300;text-align:center;padding:.6rem var(--mv-s3);font-size:.875rem;font-weight:700;letter-spacing:.03em}

.mv-ref-hero{position:relative;background:#1B0733;color:#fff;padding:clamp(3.5rem,8vw,6rem) var(--mv-s4);text-align:center;overflow:hidden;isolation:isolate}
.mv-ref-hero::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse 70% 90% at 50% 0%,rgba(131,0,233,.5),transparent 70%)}
.mv-ref-hero h1{font-family:var(--mv-font-display);font-size:clamp(2.25rem,5vw,3.75rem);font-weight:600;text-transform:uppercase;color:#FFFFFF !important;margin:0 0 var(--mv-s3);letter-spacing:.03em;line-height:1}
.mv-ref-hero p{max-width:38rem;margin:0 auto;color:rgba(255,255,255,.85) !important;font-size:clamp(1.0625rem,1.6vw,1.25rem);line-height:1.6}
.mv-ref-hero .mv-ref-hero__rule{width:56px;height:3px;background:var(--mv-green);margin:0 auto var(--mv-s4);border-radius:2px}

.mv-ref{max-width:860px;margin:0 auto;padding:var(--mv-s7) var(--mv-s4)}
.mv-ref h2{font-family:var(--mv-font-display);font-size:clamp(1.5rem,3vw,2rem);text-transform:uppercase;letter-spacing:.03em;color:var(--mv-ink);margin:var(--mv-s7) 0 var(--mv-s2);padding-bottom:var(--mv-s2);border-bottom:2px solid var(--mv-line)}
.mv-ref h2:first-of-type{margin-top:0}
.mv-ref h3{font-family:var(--mv-font-display);font-size:1.1875rem;letter-spacing:.04em;text-transform:uppercase;margin:var(--mv-s5) 0 var(--mv-s2)}
.mv-ref > p{color:var(--mv-ink-2);line-height:1.7}

.mv-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--mv-s3);margin:var(--mv-s5) 0}
.mv-step{background:var(--mv-surface-2);border-radius:var(--mv-radius-lg);padding:var(--mv-s4);border:1px solid var(--mv-line)}
.mv-step__n{width:38px;height:38px;border-radius:50%;background:var(--mv-purple);color:#fff;font-family:var(--mv-font-display);font-size:1.1875rem;font-weight:600;display:grid;place-items:center;margin-bottom:var(--mv-s3)}
.mv-step__h{font-family:var(--mv-font-display);font-size:1.125rem;font-weight:600;letter-spacing:.02em;margin-bottom:6px;color:var(--mv-ink)}
.mv-step p{font-size:var(--mv-t-small);color:var(--mv-ink-2);margin:0;line-height:1.6}

.mv-maths{background:var(--mv-purple-50);border:2px solid var(--mv-purple);border-radius:var(--mv-radius-lg);padding:var(--mv-s5) var(--mv-s4);margin:var(--mv-s5) 0;text-align:center}
.mv-maths__big{font-family:var(--mv-font-display);font-size:clamp(1.5rem,3.4vw,2.25rem);font-weight:600;color:var(--mv-purple-900);line-height:1.25;letter-spacing:.01em}
.mv-maths__sub{font-size:var(--mv-t-small);color:var(--mv-ink-2);margin-top:var(--mv-s3);line-height:1.6;max-width:44ch;margin-left:auto;margin-right:auto}

.mv-script{background:#fff;border:1px solid var(--mv-line);border-left:4px solid var(--mv-green);border-radius:var(--mv-radius);padding:var(--mv-s4);margin:var(--mv-s3) 0;font-size:1.125rem;line-height:1.7}
.mv-script__label{font-family:var(--mv-font-display);font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mv-green-900);margin-bottom:var(--mv-s2)}

.mv-rules{list-style:none;padding:0;margin:var(--mv-s3) 0}
.mv-rules li{padding:var(--mv-s3) 0 var(--mv-s3) 2.25rem;border-bottom:1px solid var(--mv-line);position:relative;font-size:var(--mv-t-body);line-height:1.65;color:var(--mv-ink-2)}
.mv-rules li:last-child{border-bottom:0}
.mv-rules li strong{color:var(--mv-ink)}
.mv-rules li::before{position:absolute;left:0;top:calc(var(--mv-s3) + 2px);font-weight:700;font-size:1.0625rem;width:1.25rem;text-align:center}
.mv-rules--do li::before{content:'\2713';color:var(--mv-green-900)}
.mv-rules--dont li::before{content:'\2715';color:#B3261E}

.mv-note{background:var(--mv-surface-2);border:1px solid var(--mv-line);border-radius:var(--mv-radius-lg);padding:var(--mv-s5) var(--mv-s4);font-size:var(--mv-t-small);color:var(--mv-ink-2);line-height:1.7;margin-top:var(--mv-s6)}
.mv-note strong{color:var(--mv-ink)}
.mv-note a{color:var(--mv-purple);font-weight:600}

/* header shadow, no JS: the topbar scrolls away and the header pins to 0 */
.mv-head{box-shadow:0 2px 20px rgba(0,0,0,.10)}

/* WP admin bar is position:fixed 32px (46px under 783px) and would cover the sticky header */
body.admin-bar .mv-head{top:32px}
@media screen and (max-width:782px){body.admin-bar .mv-head{top:46px}}

/* hero fills the first screen: viewport minus the topbar (36) + header (81); +32 for the admin bar */
:root{--mv-chrome:117px}
body.admin-bar{--mv-chrome:149px}
@media screen and (max-width:782px){body.admin-bar{--mv-chrome:163px}}
@media (max-width:980px){:root{--mv-chrome:0px}body.admin-bar{--mv-chrome:0px}.mv-hero{min-height:auto}}

/* section rhythm: the grid section is a Divi section with its own padding — force it onto the same token as .mv-fruits so the two headings sit identically */
body.mv2 #shop.et_pb_section{padding-top:var(--mv-s7) !important;padding-bottom:var(--mv-s7) !important}
body.mv2 #shop .et_pb_row{padding-top:0 !important;padding-bottom:0 !important;margin-top:0 !important}
/* mv-sec--grid rhythm */

/* anchor jump: the sticky header (81px) would otherwise cover the top of the target section */
html{scroll-behavior:smooth}
body.mv2 #shop{scroll-margin-top:81px}
body.mv2.admin-bar #shop{scroll-margin-top:113px}
/* The PDP calculator icon links to #what-you-receive. With no scroll-margin the
   jump lands the section's top at viewport 0, i.e. 81px UNDER the sticky header.
   Measured resting gap between section top and header bottom: 0px -> -81,
   81px -> 0 (flush), 96px -> +16, 113px -> +33. Same 81/113 pair as #shop above,
   because it is the same header. scroll-margin-top belongs to the TARGET. */
body.mv2 #what-you-receive{scroll-margin-top:81px}
body.mv2.admin-bar #what-you-receive{scroll-margin-top:113px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* hero: a stagger of bottles rising from the bottom edge. Back three are decorative (aria-hidden) */
.mv-hero__bottle--b1,.mv-hero__bottle--b2,.mv-hero__bottle--b3{position:absolute;bottom:0;z-index:1}
.mv-hero__bottle--b1{right:calc(clamp(1rem,3vw,3.5rem) + 15%);height:min(132svh,1320px);filter:drop-shadow(0 20px 50px rgba(0,0,0,.55)) brightness(.62) saturate(.78);margin-bottom:calc(-1 * var(--mv-bottle-sink,34%))}
.mv-hero__bottle--b2{right:calc(clamp(1rem,3vw,3.5rem) + 29%);height:min(118svh,1180px);filter:drop-shadow(0 16px 40px rgba(0,0,0,.5)) brightness(.42) saturate(.6) blur(.8px);margin-bottom:calc(-1 * var(--mv-bottle-sink,34%))}
.mv-hero__bottle--b3{right:calc(clamp(1rem,3vw,3.5rem) + 42%);height:min(106svh,1060px);filter:drop-shadow(0 12px 32px rgba(0,0,0,.45)) brightness(.28) saturate(.45) blur(1.6px);margin-bottom:calc(-1 * var(--mv-bottle-sink,34%))}
.mv-hero__bottle:not([class*="--b"]){z-index:2}
@media (max-width:980px){.mv-hero__bottle--b1,.mv-hero__bottle--b2,.mv-hero__bottle--b3{display:none}}

/* hero: the M mark, quietly, bottom right. Desktop only. */
/* The mark sits on the COPY side. Keep it there: bottom-right beside the bottlefruit
   would double the green loop already printed on the bottle - the "it appears twice"
   problem that got the 220px mark rejected. If the halves are ever flipped, move this. */
.mv-hero__mark{position:absolute;right:clamp(1.5rem,3vw,3rem);bottom:clamp(1.5rem,3vw,3rem);z-index:4;color:#FFFFFF;opacity:.5;line-height:0;pointer-events:none}
.mv-hero__mark svg{height:clamp(44px,4vw,64px);width:auto;display:block}
@media (max-width:980px){.mv-hero__mark{display:none}}

/* base flare: perspective+rotateX widens the bottom ~9.5% while the top holds. Costs 8px of height. */
.mv-hero__bottle--b1,.mv-hero__bottle--b2,.mv-hero__bottle--b3{transform:perspective(var(--mv-persp,1800px)) rotateX(var(--mv-flare,6deg));transform-origin:50% 0%}

/* header nav: icon buttons matching the cart treatment */
.mv-navbtn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;position:relative;min-height:var(--mv-tap);min-width:var(--mv-tap);padding:0 var(--mv-s3);background:transparent;color:var(--mv-ink-2);border:1.5px solid transparent;border-radius:var(--mv-radius);text-decoration:none;transition:border-color .15s ease,background .15s ease,color .15s ease}
.mv-navbtn:hover{border-color:var(--mv-line-strong);background:var(--mv-surface-2);color:var(--mv-ink)}
.mv-navbtn.is-current{color:var(--mv-ink)}
.mv-navbtn__ico{width:21px;height:21px;flex:0 0 auto}
.mv-navbtn__ico svg{width:100%;height:100%;display:block}
.mv-navbtn__label{font-family:var(--mv-font-display);font-size:1rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
/* signed-in dot: green, small, unmistakable */
.mv-navbtn__dot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:var(--mv-green);box-shadow:0 0 0 2px #fff}
.mv-navbtn.is-in{color:var(--mv-ink)}
@media (max-width:860px){
.mv-navbtn__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mv-navbtn{padding:0;width:var(--mv-tap)}
}

/* card: quiet secondary link to the full product page */
body.mv2 .mv-card__info{display:inline-flex;align-items:center;justify-content:center;min-height:40px;font-size:var(--mv-t-small);font-weight:600;color:var(--mv-ink-2);text-decoration:none;border-bottom:1px solid var(--mv-line);border-radius:0;transition:color .15s ease,border-color .15s ease;align-self:center}
body.mv2 .mv-card__info:hover{color:var(--mv-purple);border-color:var(--mv-purple)}
body.mv2 #shop.et_pb_section{padding-top:var(--mv-s7) !important;padding-bottom:var(--mv-s7) !important}

/* ===== PRODUCT PAGE ===== */
.mv-pdp{background:var(--mv-surface)}
.mv-pdp__top{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:start;max-width:1440px;margin:0 auto;padding:var(--mv-s7) var(--mv-s4)}
.mv-pdp__media{background:var(--mv-surface-2);border-radius:var(--mv-radius-lg);aspect-ratio:1/1;position:relative;overflow:hidden}
.mv-pdp__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:var(--mv-s5)}
body.mv2 .mv-pdp__eyebrow{font-family:var(--mv-font-display);font-size:1.125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--mv-green-900);margin:0 0 var(--mv-s2)}
.mv-pdp__title{font-family:var(--mv-font-display);font-size:clamp(1.875rem,3.4vw,2.75rem);font-weight:600;line-height:1.1;color:var(--mv-ink);margin:0 0 var(--mv-s2);text-transform:uppercase;letter-spacing:.01em}
body.mv2 .mv-pdp__unit{font-size:var(--mv-t-body);color:var(--mv-ink-2);margin:0 0 var(--mv-s4)}
.mv-pdp__buy .mv-opts{margin-bottom:var(--mv-s3)}
.mv-pdp__trust{list-style:none;padding:var(--mv-s4) 0 0;margin:var(--mv-s4) 0 0;border-top:1px solid var(--mv-line)}
.mv-pdp__trust li{position:relative;padding:0 0 var(--mv-s2) 1.6rem;font-size:var(--mv-t-small);color:var(--mv-ink-2);line-height:1.5}
.mv-pdp__trust li::before{content:'\2713';position:absolute;left:0;color:var(--mv-green-900);font-weight:700}
.mv-pdp__trust a{color:var(--mv-purple);font-weight:700;text-decoration:none;white-space:nowrap}

.mv-pdp__sec{padding:var(--mv-s7) 0;border-top:1px solid var(--mv-line)}
.mv-pdp__sec--story{background:var(--mv-surface-2);border-top:0}
.mv-pdp__sec--legal{padding:var(--mv-s5) 0;background:var(--mv-surface-2)}
.mv-pdp__in{max-width:1180px;margin:0 auto;padding:0 var(--mv-s4)}
.mv-pdp__in--narrow{max-width:780px}
.mv-pdp__sec h2{font-family:var(--mv-font-display);font-size:clamp(1.75rem,3.5vw,2.5rem);text-transform:uppercase;letter-spacing:.02em;color:var(--mv-ink);margin:0 0 var(--mv-s5);text-align:center;line-height:1.15}
body.mv2 .mv-pdp__sec--legal p{font-size:.8125rem;color:var(--mv-ink-3);text-align:center;line-height:1.6;margin:0}

body.mv2 .mv-story__lede{text-align:center;color:var(--mv-ink-2);max-width:none;margin:-1.5rem auto var(--mv-s6);font-size:1.125rem;line-height:1.6;text-wrap:balance}
.mv-story{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--mv-s4);counter-reset:mv-step}
.mv-story__step{position:relative;padding:var(--mv-s5) var(--mv-s4) var(--mv-s4);background:var(--mv-surface);border:1px solid var(--mv-line);border-radius:var(--mv-radius-lg)}
.mv-story__n{position:absolute;top:-16px;left:var(--mv-s4);width:34px;height:34px;border-radius:50%;background:var(--mv-purple);color:#fff;font-family:var(--mv-font-display);font-size:1.0625rem;font-weight:600;display:grid;place-items:center;box-shadow:0 0 0 4px var(--mv-surface-2)}
.mv-story__step h3{font-family:var(--mv-font-display);font-size:1.375rem;text-transform:uppercase;letter-spacing:.05em;color:var(--mv-ink);margin:0 0 var(--mv-s2)}
body.mv2 .mv-story__step p{font-size:var(--mv-t-body);color:var(--mv-ink-2);line-height:1.7;margin:0}

.mv-prose{font-size:var(--mv-t-body);line-height:1.75;color:var(--mv-ink-2)}
body.mv2 .mv-prose p{font-size:var(--mv-t-body);line-height:1.75;margin:0 0 var(--mv-s3)}
.mv-prose ul{padding-left:1.4rem;margin:0 0 var(--mv-s3)}
.mv-prose li{margin-bottom:var(--mv-s2);line-height:1.6}
.mv-prose img{max-width:100%;height:auto;border-radius:var(--mv-radius)}
.mv-prose--facts img{display:block;margin:0 auto;max-width:480px}
.mv-prose--faq h4,.mv-prose--faq h5,.mv-prose--faq h6{font-family:var(--mv-font-display);font-size:1.125rem;font-weight:600;color:var(--mv-ink);margin:var(--mv-s5) 0 var(--mv-s2);letter-spacing:.01em;line-height:1.35}
.mv-prose--faq strong{color:var(--mv-ink)}
@media (max-width:900px){
.mv-pdp__top{grid-template-columns:1fr;gap:var(--mv-s4);padding:var(--mv-s5) var(--mv-s3)}
}

/* mv-list-reset: Divi's .et-l--body ul{list-style:disc;padding-left:1em} outspecifies bare component classes and puts real bullets next to our checkmarks */
body.mv2 .mv-pdp__trust,body.mv2 .mv-rules,body.mv2 .mv-intervals{list-style:none !important;padding-left:0 !important;margin-left:0}
body.mv2 .mv-pdp__trust li,body.mv2 .mv-rules li{list-style:none !important}
body.mv2 .mv-pdp__trust li::marker,body.mv2 .mv-rules li::marker{content:none}

/* ===== PRODUCT GALLERY ===== */
.mv-gal{display:flex;flex-direction:column;gap:var(--mv-s3)}
.mv-gal__stage{position:relative;aspect-ratio:1/1;width:100%;background:var(--mv-surface-2);border-radius:var(--mv-radius-lg);overflow:hidden;display:block}
.mv-gal__img{position:absolute;top:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;padding:var(--mv-s5);box-sizing:border-box;opacity:0;transform:scale(.985);transition:opacity 320ms ease,transform 420ms cubic-bezier(.2,.8,.3,1);pointer-events:none}
.mv-gal__img.is-on{opacity:1;transform:scale(1)}
.mv-gal__thumbs{display:flex;gap:var(--mv-s2);flex-wrap:wrap}
.mv-gal__thumb{width:84px;height:84px;padding:6px;border:1.5px solid var(--mv-line);border-radius:var(--mv-radius);background:var(--mv-surface-2);cursor:pointer;transition:border-color .15s ease,transform .15s ease;flex:0 0 auto}
.mv-gal__thumb img{width:100%;height:100%;object-fit:contain;display:block}
.mv-gal__thumb:hover{border-color:var(--mv-line-strong);transform:translateY(-2px)}
.mv-gal__thumb.is-on{border-color:var(--mv-purple);border-width:2px}
.mv-gal__thumb:focus-visible{outline:3px solid var(--mv-purple);outline-offset:2px}
@media (max-width:900px){
.mv-gal__thumb{width:64px;height:64px}
}
@media (prefers-reduced-motion:reduce){
.mv-gal__img{transition:opacity 1ms;transform:none}
.mv-gal__img.is-on{transform:none}
}

/* ===== LIGHTBOX ===== */
body.mv2 .mv-gal__stage{cursor:zoom-in}
.mv-lb{position:fixed;inset:0;z-index:9999;background:rgba(27,7,51,.94);display:none;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);cursor:zoom-out}
.mv-lb.is-open{display:flex}
.mv-lb__img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:var(--mv-radius)}
.mv-lb__close{position:absolute;top:clamp(1rem,3vw,2rem);right:clamp(1rem,3vw,2rem);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .15s ease}
.mv-lb__close:hover{background:rgba(255,255,255,.26)}
.mv-lb__nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;transition:background .15s ease}
.mv-lb__nav:hover{background:rgba(255,255,255,.26)}
.mv-lb__nav--prev{left:clamp(.5rem,2vw,1.5rem)}
.mv-lb__nav--next{right:clamp(.5rem,2vw,1.5rem)}
.mv-lb__count{position:absolute;bottom:clamp(1rem,3vw,2rem);left:50%;transform:translateX(-50%);color:rgba(255,255,255,.75);font-size:.875rem;letter-spacing:.06em;font-variant-numeric:tabular-nums}
body.mv-lb-lock{overflow:hidden}

/* tall images (the supplement facts panel) fill the padded frame and crop; the lightbox shows them whole */
.mv-gal__img--tall{object-fit:cover;object-position:center top;border-radius:0;background-clip:content-box;-webkit-mask-image:none}
/* the radius must clip the PAINTED pixels, not the element box (which includes the 32px padding) */
.mv-gal__img--tall{clip-path:inset(32px round var(--mv-radius-lg))}

/* ===== SUBSCRIBE VS BUY ONCE ===== */
.mv-pdp__sec--cmp{background:var(--mv-surface-2)}
body.mv2 .mv-cmp__lede{text-align:center;color:var(--mv-ink-2);max-width:44ch;margin:-1.5rem auto var(--mv-s5);font-size:var(--mv-t-body)}
.mv-cmp{background:var(--mv-surface);border:1px solid var(--mv-line);border-radius:var(--mv-radius-lg);overflow:hidden}
.mv-cmp__row{display:grid;grid-template-columns:1.1fr 1fr 1fr;align-items:center;border-bottom:1px solid var(--mv-line)}
.mv-cmp__row:last-child{border-bottom:0}
.mv-cmp__row--head{background:var(--mv-surface-2);border-bottom:2px solid var(--mv-line-strong)}
.mv-cmp__row--head .mv-cmp__col{font-family:var(--mv-font-display);font-size:1.0625rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mv-ink);padding-top:var(--mv-s3);padding-bottom:var(--mv-s3)}
.mv-cmp__row--head .mv-cmp__col--sub{color:var(--mv-purple-900)}
.mv-cmp__label{padding:var(--mv-s3) var(--mv-s4);font-size:var(--mv-t-small);font-weight:700;color:var(--mv-ink-2)}
.mv-cmp__col{padding:var(--mv-s3) var(--mv-s4);font-size:var(--mv-t-body);color:var(--mv-ink-2);text-align:center;line-height:1.4}
.mv-cmp__col--sub{background:var(--mv-purple-50);color:var(--mv-ink);font-weight:700;border-left:1px solid var(--mv-line);border-right:0;position:relative}
.mv-cmp__row--head .mv-cmp__col--sub{background:var(--mv-purple-50)}
.mv-cmp__tag{display:block;margin-top:3px;font-size:.8125rem;font-weight:700;color:var(--mv-green-900);letter-spacing:.02em}
.mv-cmp__k{display:none}
body.mv2 .mv-cmp__foot{text-align:center;font-size:var(--mv-t-small);color:var(--mv-ink-3);margin:var(--mv-s4) auto 0;max-width:52ch;line-height:1.6}
@media (max-width:720px){
.mv-cmp__row{grid-template-columns:1fr 1fr;gap:0}
.mv-cmp__label{grid-column:1 / -1;background:var(--mv-surface-2);padding-bottom:var(--mv-s2);border-bottom:1px solid var(--mv-line)}
.mv-cmp__row--head{display:none}
.mv-cmp__k{display:block;font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mv-ink-3);margin-bottom:2px}
.mv-cmp__col{text-align:center}
}

/* the yearly figure: the one number the comparison table had that the buy panel did not */
.mv-opt__year{display:inline-block;margin-top:6px;padding:3px 9px;border-radius:999px;background:var(--mv-green-900);color:#fff;font-size:.8125rem;font-weight:700;letter-spacing:.01em}

/* next size up: a quiet nudge, not a second CTA */
.mv-pdp__more{display:flex;align-items:center;justify-content:space-between;gap:var(--mv-s3);margin-top:var(--mv-s3);padding:var(--mv-s3) var(--mv-s4);border:1.5px dashed var(--mv-line-strong);border-radius:var(--mv-radius);text-decoration:none;transition:border-color .15s ease,background .15s ease}
.mv-pdp__more:hover{border-color:var(--mv-purple);background:var(--mv-purple-50)}
.mv-pdp__more__q{font-size:var(--mv-t-small);font-weight:700;color:var(--mv-ink-2);white-space:nowrap}
.mv-pdp__more:hover .mv-pdp__more__q{color:var(--mv-purple-900)}
.mv-pdp__more__a{font-size:var(--mv-t-small);color:var(--mv-ink-3);text-align:right}
.mv-pdp__more:hover .mv-pdp__more__a{color:var(--mv-ink-2)}
@media (max-width:520px){.mv-pdp__more{flex-direction:column;align-items:flex-start;gap:2px}.mv-pdp__more__a{text-align:left}}

/* ===== EVERY QUANTITY (product page foot row) ===== */
.mv-pdp__sec--others{background:var(--mv-surface-2)}
body.mv2 .mv-others__lede{text-align:center;color:var(--mv-ink-2);max-width:none;margin:-1.5rem auto var(--mv-s5);font-size:var(--mv-t-body);text-wrap:balance}
.mv-others{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--mv-s3)}
.mv-other{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:var(--mv-s4) var(--mv-s2) var(--mv-s3);background:var(--mv-surface);border:1.5px solid var(--mv-line);border-radius:var(--mv-radius-lg);text-decoration:none;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}
a.mv-other:hover{border-color:var(--mv-purple);transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.07)}
.mv-other.is-here{border-color:var(--mv-ink);border-width:2px;background:var(--mv-surface-2)}
.mv-other__pic{width:64px;height:64px;position:relative;display:block;margin-bottom:2px;flex:0 0 auto}
.mv-other__pic img{position:absolute;top:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;display:block;box-sizing:border-box}
.mv-other__label{font-family:var(--mv-font-display);font-size:1.0625rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--mv-ink)}
.mv-other__price{font-family:var(--mv-font-display);font-size:1.25rem;font-weight:600;color:var(--mv-ink)}
.mv-other__per{font-size:.8125rem;color:var(--mv-ink-3)}
.mv-other__tag{position:absolute;top:-9px;left:50%;transform:translateX(-50%);padding:2px 8px;border-radius:999px;font-size:.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;background:var(--mv-ink);color:#fff}
.mv-other__tag--best{background:var(--mv-green-900);color:#fff}

body.mv2 .mv-pdp__expiry{font-size:.8125rem;color:var(--mv-ink-3);margin:var(--mv-s2) 0 0;letter-spacing:.02em}

body.mv2 .mv-pdp__desc{font-size:var(--mv-t-body);line-height:1.65;color:var(--mv-ink-2);margin:0 0 var(--mv-s4)}
body.mv2 .mv-pdp__desc p{margin:0;font-size:var(--mv-t-body);line-height:1.65}

/* ===== BENEFITS CARDS ===== */
.mv-pdp__sec--ben{background:var(--mv-surface)}
.mv-bens{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--mv-s3)}
.mv-ben{display:flex;flex-direction:column;gap:var(--mv-s3);padding:var(--mv-s4);background:var(--mv-surface-2);border:1px solid var(--mv-line);border-radius:var(--mv-radius-lg);transition:border-color .15s ease,transform .15s ease}
.mv-ben:hover{border-color:var(--mv-line-strong);transform:translateY(-2px)}
.mv-ben--claim{background:var(--mv-purple-50);border-color:transparent}
.mv-ben--claim:hover{border-color:var(--mv-purple)}
.mv-ben__ico{width:34px;height:34px;color:var(--mv-ink-3);flex:0 0 auto}
.mv-ben--claim .mv-ben__ico{color:var(--mv-purple)}
.mv-ben__ico svg{width:100%;height:100%;display:block}
body.mv2 .mv-ben__t{font-size:1.0625rem;line-height:1.45;color:var(--mv-ink-2);margin:0;font-weight:600}
body.mv2 .mv-ben--claim .mv-ben__t{color:var(--mv-ink)}
.mv-ben__star{color:var(--mv-purple);font-weight:700;margin-left:1px}
body.mv2 .mv-bens__note{margin:var(--mv-s5) 0 0;font-size:.75rem;line-height:1.6;color:var(--mv-ink-3);text-align:center;max-width:64ch;margin-left:auto;margin-right:auto}

/* ===== FAQ ===== */
.mv-pdp__sec--faq{background:var(--mv-surface-2)}
body.mv2 .mv-faq__lede{text-align:center;color:var(--mv-ink-2);margin:-1.5rem auto var(--mv-s5);font-size:var(--mv-t-body)}
.mv-faq{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--mv-s4);align-items:start}
.mv-faq__i{background:var(--mv-surface);border:1px solid var(--mv-line);border-radius:var(--mv-radius);margin-bottom:var(--mv-s2)}

.mv-faq__q{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--mv-s3);padding:var(--mv-s4);cursor:pointer;list-style:none;font-family:var(--mv-font-body);font-size:1.0625rem;font-weight:700;color:var(--mv-ink);line-height:1.45;transition:background .15s ease,color .15s ease}
.mv-faq__q::-webkit-details-marker{display:none}
.mv-faq__q:hover{background:var(--mv-purple-50);color:var(--mv-purple-900)}
.mv-faq__q:focus-visible{outline:3px solid var(--mv-purple);outline-offset:-3px}
.mv-faq__mark{position:relative;width:20px;height:20px;flex:0 0 auto;margin-top:2px}
.mv-faq__mark::before,.mv-faq__mark::after{content:"";position:absolute;background:var(--mv-purple);border-radius:2px;transition:transform .2s ease,opacity .2s ease}
.mv-faq__mark::before{top:9px;left:2px;width:16px;height:2px}
.mv-faq__mark::after{top:2px;left:9px;width:2px;height:16px}
.mv-faq__i[open] .mv-faq__mark::after{transform:rotate(90deg);opacity:0}
.mv-faq__i[open] .mv-faq__q{background:var(--mv-purple-50);color:var(--mv-purple-900)}
.mv-faq__a{padding:0 var(--mv-s4) var(--mv-s4);animation:mv-faq-in 200ms ease both}
@keyframes mv-faq-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
body.mv2 .mv-faq__a p{margin:0;font-size:var(--mv-t-body);line-height:1.7;color:var(--mv-ink-2);max-width:68ch}
@media (prefers-reduced-motion:reduce){.mv-faq__a{animation:none}}

@media (max-width:860px){.mv-faq{grid-template-columns:1fr}}

/* deliberate section rhythm on the product page: white, tint, white, tint...
   Every section declares its own background so nothing is accidental. */
body.mv2 .mv-pdp__sec{background:var(--mv-surface)}
body.mv2 .mv-pdp__sec--story{background:var(--mv-surface-2)}
body.mv2 .mv-fruits{background:var(--mv-surface)}
body.mv2 .mv-pdp__sec--others{background:var(--mv-surface-2)}
body.mv2 .mv-pdp__sec--faq{background:var(--mv-surface)}
body.mv2 .mv-pdp__sec--legal{background:var(--mv-surface-2)}
/* a hairline only where two same-colored sections meet */
body.mv2 .mv-fruits{border-top:1px solid var(--mv-line)}

/* facts sits between two whites — tint it so the rhythm alternates */
body.mv2 .mv-pdp__sec--facts{background:var(--mv-surface-2)}

/* rhythm by position: every other section tints. Beats tagging each one by hand,
   and stays correct if a section is added or moved. */
body.mv2 .mv-pdp > section:nth-of-type(even){background:var(--mv-surface-2)}
body.mv2 .mv-pdp > section:nth-of-type(odd){background:var(--mv-surface)}
body.mv2 .mv-pdp > .mv-fruits{border-top:0}

/* radio tap target: the visible dot is 22px but the whole label is the hit area.
   Make that explicit so it clears 44px for a 65yo on a tablet. */
body.mv2 .mv-opt{min-height:var(--mv-tap);cursor:pointer}
body.mv2 .mv-opt__radio{width:24px;height:24px}

/* ===== SLIDE-IN CART DRAWER ===== */
.mv-drawer__veil{position:fixed;inset:0;z-index:9998;background:rgba(27,7,51,.5);opacity:0;pointer-events:none;transition:opacity .3s ease}
.mv-drawer__veil.is-open{opacity:1;pointer-events:auto}
.mv-drawer{position:fixed;top:0;right:0;bottom:0;z-index:9999;width:min(440px,100vw);background:var(--mv-surface);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .32s cubic-bezier(.32,.72,0,1);box-shadow:-12px 0 48px rgba(0,0,0,.18)}
.mv-drawer.is-open{transform:translateX(0)}
.mv-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:var(--mv-s3);padding:var(--mv-s4);border-bottom:1px solid var(--mv-line);flex:0 0 auto}
.mv-drawer__title{font-family:var(--mv-font-display);font-size:1.375rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--mv-ink);margin:0}
.mv-drawer__n{font-size:.875rem;color:var(--mv-ink-3);font-weight:600}
.mv-drawer__x{width:var(--mv-tap);height:var(--mv-tap);border:0;background:transparent;border-radius:50%;font-size:1.5rem;line-height:1;color:var(--mv-ink-2);cursor:pointer;transition:background .15s ease}
.mv-drawer__x:hover{background:var(--mv-surface-2);color:var(--mv-ink)}
.mv-drawer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--mv-s4)}
.mv-drawer__foot{flex:0 0 auto;padding:var(--mv-s4);border-top:1px solid var(--mv-line);background:var(--mv-surface-2)}
.mv-drawer__row{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--mv-s2)}
body.mv2 .mv-drawer__row--total{font-size:1.25rem;font-weight:700;color:var(--mv-ink);margin-bottom:var(--mv-s3)}
body.mv2 .mv-drawer__note{font-size:.8125rem;color:var(--mv-ink-3);text-align:center;margin:var(--mv-s3) 0 0}
.mv-drawer__cta{display:flex;flex-direction:column;gap:var(--mv-s2)}
.mv-drawer__cta .mv-btn{width:100%;justify-content:center}
.mv-drawer__link{display:block;text-align:center;padding:var(--mv-s2);font-size:var(--mv-t-small);font-weight:600;color:var(--mv-ink-2);text-decoration:none;min-height:var(--mv-tap);line-height:2}
.mv-drawer__link:hover{color:var(--mv-purple)}
/* line item */
.mv-li{display:grid;grid-template-columns:72px 1fr;gap:var(--mv-s3);padding:var(--mv-s3) 0;border-bottom:1px solid var(--mv-line)}
.mv-li:last-child{border-bottom:0}
.mv-li__pic{width:72px;height:72px;position:relative;background:var(--mv-surface-2);border-radius:var(--mv-radius);display:block}
.mv-li__pic img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box}
.mv-li__name{font-size:.9375rem;font-weight:700;color:var(--mv-ink);text-decoration:none;line-height:1.35;display:block;margin-bottom:2px}
.mv-li__name:hover{color:var(--mv-purple)}
body.mv2 .mv-li__meta{font-size:.8125rem;color:var(--mv-ink-3);margin:0 0 var(--mv-s2)}
.mv-li__sub{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--mv-green-900);color:#fff;font-size:.6875rem;font-weight:700;letter-spacing:.04em;margin-bottom:4px}
.mv-li__bottom{display:flex;align-items:center;justify-content:space-between;gap:var(--mv-s2)}
.mv-li__price{font-weight:700;color:var(--mv-ink)}
.mv-li__x{background:transparent;border:0;color:var(--mv-ink-3);font-size:.8125rem;cursor:pointer;text-decoration:underline;padding:8px 0;min-height:36px}
.mv-li__x:hover{color:#B3261E}
.mv-drawer__empty{text-align:center;padding:var(--mv-s7) var(--mv-s4);color:var(--mv-ink-2)}
body.mv-drawer-lock{overflow:hidden}
@media (prefers-reduced-motion:reduce){.mv-drawer{transition:none}.mv-drawer__veil{transition:none}}

/* drawer skeleton: the drawer opens instantly and fills when the fetch lands.
   Without this it flashes empty on a slow connection. */
.mv-li--skel{pointer-events:none}
.mv-li--skel .mv-li__pic,.mv-li--skel .mv-sk{background:linear-gradient(90deg,var(--mv-surface-2) 25%,#ECEAEF 37%,var(--mv-surface-2) 63%);background-size:400% 100%;animation:mv-sk 1.4s ease infinite;border-radius:var(--mv-radius)}
.mv-sk{display:block;height:12px;margin-bottom:8px}
.mv-sk--name{width:78%;height:14px}
.mv-sk--pill{width:44%}
.mv-sk--meta{width:34%}
.mv-sk--price{width:56px;height:16px;margin-left:auto}
@keyframes mv-sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
@media (prefers-reduced-motion:reduce){.mv-li--skel .mv-li__pic,.mv-li--skel .mv-sk{animation:none}}

/* ===== DRAWER: head, line items, foot ===== */
body.mv2 .mv-drawer__head{display:flex;align-items:center;justify-content:space-between;gap:var(--mv-s3);padding:var(--mv-s4);border-bottom:1px solid var(--mv-line);flex:0 0 auto}
body.mv2 .mv-drawer__title{font-family:var(--mv-font-display);font-size:1.625rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mv-ink);margin:0;padding:0;line-height:1}
body.mv2 .mv-drawer__x{width:var(--mv-tap);height:var(--mv-tap);border:0;background:transparent;color:var(--mv-ink-2);font-size:1.75rem;line-height:1;cursor:pointer;border-radius:var(--mv-radius);transition:background .15s ease,color .15s ease;flex:0 0 auto}
body.mv2 .mv-drawer__x:hover{background:var(--mv-surface-2);color:var(--mv-ink)}
body.mv2 .mv-drawer__body{flex:1 1 auto;overflow-y:auto;padding:0 var(--mv-s4)}
body.mv2 .mv-drawer__foot{flex:0 0 auto;padding:var(--mv-s4);border-top:1px solid var(--mv-line);background:var(--mv-surface-2)}

/* line item */
body.mv2 .mv-li{display:grid;grid-template-columns:72px 1fr auto;gap:var(--mv-s3);padding:var(--mv-s4) 0;border-bottom:1px solid var(--mv-line);align-items:start}
body.mv2 .mv-li:last-child{border-bottom:0}
body.mv2 .mv-li__pic{width:72px;height:72px;position:relative;display:block;background:var(--mv-surface-2);border-radius:var(--mv-radius);overflow:hidden}
body.mv2 .mv-li__pic img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;padding:6px;box-sizing:border-box}
body.mv2 .mv-li__name{font-family:var(--mv-font-body);font-size:.9375rem;font-weight:700;color:var(--mv-ink);line-height:1.35;margin:0 0 5px;text-decoration:none;display:block}
body.mv2 .mv-li__name:hover{color:var(--mv-purple)}
body.mv2 .mv-li__sub{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--mv-green-900);color:#fff;font-size:.6875rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;margin:0 0 6px;line-height:1.4}
body.mv2 .mv-li__meta{font-size:.8125rem;color:var(--mv-ink-3);margin:0 0 var(--mv-s2);line-height:1.4}

/* qty: proper 40px targets, matches the buy panel stepper */
body.mv2 .mv-li__qty{display:inline-flex;align-items:center;border:1.5px solid var(--mv-line);border-radius:var(--mv-radius);overflow:hidden;background:var(--mv-surface)}
body.mv2 .mv-li__qty button{width:40px;height:40px;min-width:40px;border:0;background:transparent;color:var(--mv-ink-2);font-size:1.25rem;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .15s ease,color .15s ease;padding:0}
body.mv2 .mv-li__qty button:hover{background:var(--mv-purple-50);color:var(--mv-purple)}
body.mv2 .mv-li__qty span{min-width:34px;text-align:center;font-size:1rem;font-weight:700;color:var(--mv-ink);font-variant-numeric:tabular-nums;border-left:1.5px solid var(--mv-line);border-right:1.5px solid var(--mv-line);align-self:stretch;display:grid;place-items:center}

body.mv2 .mv-li__right{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:var(--mv-s3);min-height:72px}
body.mv2 .mv-li__price{font-family:var(--mv-font-display);font-size:1.125rem;font-weight:600;color:var(--mv-ink);white-space:nowrap}
body.mv2 .mv-li__x{border:0;background:transparent;color:var(--mv-ink-3);font-size:.8125rem;cursor:pointer;text-decoration:underline;padding:6px 0;min-height:auto}
body.mv2 .mv-li__x:hover{color:#B3261E}

/* foot */
body.mv2 .mv-drawer__sub{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 var(--mv-s2)}
body.mv2 .mv-drawer__sub span{font-size:var(--mv-t-body);color:var(--mv-ink-2)}
body.mv2 .mv-drawer__sub b{font-family:var(--mv-font-display);font-size:1.625rem;font-weight:600;color:var(--mv-ink)}
body.mv2 .mv-drawer__ship{display:flex;align-items:center;gap:6px;font-size:.8125rem;color:var(--mv-green-900);font-weight:700;margin:0 0 var(--mv-s4);line-height:1.4}
body.mv2 .mv-drawer__go{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;background:var(--mv-purple);color:#fff;border:0;border-radius:var(--mv-radius);font-family:var(--mv-font-display);font-size:1.125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .15s ease;box-sizing:border-box}
body.mv2 .mv-drawer__go:hover{background:var(--mv-purple-900);color:#fff}
body.mv2 .mv-drawer__view{display:block;width:100%;text-align:center;margin:var(--mv-s3) 0 0;padding:var(--mv-s2) 0;font-size:var(--mv-t-small);color:var(--mv-ink-2);text-decoration:underline;min-height:var(--mv-tap);line-height:1.6;box-sizing:border-box}
body.mv2 .mv-drawer__view:hover{color:var(--mv-purple)}
body.mv2 .mv-drawer__empty{text-align:center;padding:var(--mv-s7) var(--mv-s4);color:var(--mv-ink-2)}

/* qty buttons: minus goes red, plus goes green. Colour the intent, not just the hover. */
body.mv2 .mv-li__qty button[data-d="-1"]:hover{background:rgba(179,38,30,.10);color:#B3261E}
body.mv2 .mv-li__qty button[data-d="-1"]:active{background:rgba(179,38,30,.20);color:#B3261E}
body.mv2 .mv-li__qty button[data-d="1"]:hover{background:rgba(47,107,28,.10);color:var(--mv-green-900)}
body.mv2 .mv-li__qty button[data-d="1"]:active{background:rgba(47,107,28,.20);color:var(--mv-green-900)}
body.mv2 .mv-li__qty button:focus-visible{outline:2px solid var(--mv-purple);outline-offset:-2px}

/* drawer head: a real header, not a floating title */
body.mv2 .mv-drawer__head{background:var(--mv-surface-2);padding:var(--mv-s4);border-bottom:1px solid var(--mv-line)}
body.mv2 .mv-drawer__titlewrap{display:flex;align-items:center;gap:var(--mv-s3);min-width:0}
body.mv2 .mv-drawer__count{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;background:var(--mv-purple);color:#fff;font-family:var(--mv-font-body);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;line-height:1.4}
body.mv2 .mv-drawer__count:empty{display:none}

/* Drawer head: re-center the title in the band the admin bar leaves visible.
   Logged-in admins only; customers never see an admin bar and are already centered. */
body.mv2.admin-bar .mv-drawer__head{padding-top:calc(var(--mv-s4) + 32px)}
@media screen and (max-width:782px){
  body.mv2.admin-bar .mv-drawer__head{padding-top:calc(var(--mv-s4) + 46px)}
}

/* ── Interval picker ─────────────────────────────────────────────
   Lives INSIDE the Subscribe & save option, as the last line of
   .mv-opt__body — so it shares the left edge with the label, the
   unit price and the savings pill. No divider: it is part of the
   box, not an attachment to it. Hidden unless Subscribe is chosen. */
body.mv2 .mv-ivl{
  display:flex;
  align-items:center;
  gap:var(--mv-s2);
  flex-wrap:wrap;
  width:100%;
  margin:var(--mv-s3) 0 0;
  padding:0;
  border:0;
}
body.mv2 .mv-ivl[hidden]{ display:none; }
body.mv2 .mv-ivl__lbl{
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-small);
  color:#5A5560;
  white-space:nowrap;
}
body.mv2 .mv-ivl__sel{
  flex:1 1 auto;
  min-width:0;
  min-height:var(--mv-tap);
  padding:0 calc(var(--mv-s3) + 18px) 0 var(--mv-s3);
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-small);
  color:var(--mv-ink);
  background-color:#FFFFFF;
  border:1px solid var(--mv-line);
  border-radius:var(--mv-radius);
  cursor:pointer;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23231F20' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right var(--mv-s3) center;
  transition:border-color .15s ease;
}
body.mv2 .mv-ivl__sel:hover{ border-color:var(--mv-purple); }
body.mv2 .mv-ivl__sel:focus-visible{
  outline:2px solid var(--mv-purple);
  outline-offset:2px;
  border-color:var(--mv-purple);
}
body.mv2 .mv-ivl__sel:disabled{ opacity:.5; cursor:default; }
@media (max-width:620px){
  body.mv2 .mv-ivl__lbl{ flex:1 1 100%; }
  body.mv2 .mv-ivl__sel{ flex:1 1 100%; }
}

/* ── Drawer: the subscription pill is the interval control ───────
   Matt: "where it has the green pill ... the buyer clicks that and
   is presented with the other options." The pill became a <button>,
   so it needs its pill look restored plus affordance that it's live. */
body.mv2 .mv-drawer .mv-li__sub{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:2px 0 0;
  padding:3px 10px;
  border:1px solid rgba(47,107,28,.28);
  border-radius:999px;
  background:rgba(88,183,53,.12);
  color:var(--mv-green-900);
  font-family:var(--mv-font-body);
  font-size:12px;
  font-weight:600;
  line-height:1.5;
  letter-spacing:.01em;
  cursor:pointer;
  transition:background-color .15s ease, border-color .15s ease;
}
body.mv2 .mv-drawer .mv-li__sub:hover{
  background:rgba(88,183,53,.22);
  border-color:var(--mv-green-900);
}
body.mv2 .mv-drawer .mv-li__sub:focus-visible{
  outline:2px solid var(--mv-purple);
  outline-offset:2px;
}
/* the chevron: rotates when the picker is open */
body.mv2 .mv-drawer .mv-li__sub__c{
  width:8px;
  height:8px;
  border-right:1.6px solid currentColor;
  border-bottom:1.6px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
  transition:transform .18s ease;
}
body.mv2 .mv-drawer .mv-li__sub[aria-expanded="true"] .mv-li__sub__c{
  transform:translateY(1px) rotate(-135deg);
}
body.mv2 .mv-drawer .mv-liivl{
  display:block;
  margin:8px 0 0;
}
body.mv2 .mv-drawer .mv-liivl[hidden]{ display:none; }
body.mv2 .mv-drawer .mv-liivl__sel{
  width:100%;
  min-height:40px;
  padding:0 32px 0 10px;
  font-family:var(--mv-font-body);
  font-size:13px;
  color:var(--mv-ink);
  background-color:#FFFFFF;
  border:1px solid var(--mv-line);
  border-radius:var(--mv-radius);
  cursor:pointer;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23231F20' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
}
body.mv2 .mv-drawer .mv-liivl__sel:hover{ border-color:var(--mv-purple); }
body.mv2 .mv-drawer .mv-liivl__sel:focus-visible{
  outline:2px solid var(--mv-purple);
  outline-offset:2px;
  border-color:var(--mv-purple);
}
body.mv2 .mv-drawer .mv-liivl__sel:disabled{ opacity:.5; cursor:default; }

/* ── Cart page ───────────────────────────────────────────────────
   The drawer's vocabulary applied to Woo's cart table. Everything
   scoped body.mv2.woocommerce-cart so it cannot leak to checkout
   or my-account, which are still old Divi. */
body.mv2.woocommerce-cart .woocommerce{
  max-width:1180px;
  margin:0 auto;
  padding:var(--mv-s7) var(--mv-s3);
}
body.mv2.woocommerce-cart .shop_table{
  border:1px solid var(--mv-line);
  border-radius:var(--mv-radius-lg);
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  background:#FFFFFF;
}

body.mv2.woocommerce-cart .shop_table td{
  padding:var(--mv-s3);
  border:0;
  border-bottom:1px solid var(--mv-line);
  vertical-align:middle;
  background:#FFFFFF;
}
body.mv2.woocommerce-cart .shop_table tr:last-child td{ border-bottom:0; }
body.mv2.woocommerce-cart .product-thumbnail img{
  width:72px;
  height:72px;
  object-fit:contain;
  border-radius:var(--mv-radius);
  background:var(--mv-surface-2);
}
body.mv2.woocommerce-cart .product-name a{
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-body);
  font-weight:600;
  color:var(--mv-ink);
  text-decoration:none;
}
body.mv2.woocommerce-cart .product-name a:hover{ color:var(--mv-purple); }
body.mv2.woocommerce-cart .product-subtotal{
  font-family:var(--mv-font-display);
  font-size:1.25rem;
  font-weight:600;
  color:var(--mv-ink);
  white-space:nowrap;
}

/* the buy control that replaced the 11 radios */

/* totals — the recurring block is Woo Subscriptions' own and stays */

@media (max-width:782px){
  
  
  
}
/* mv-cart2-applied */

/* ── Cart page, round 2 ──────────────────────────────────────────
   The page title, the coupon row, Update cart and the qty box.
   !important is deliberate here: Divi injects #et-critical-inline-css
   INLINE IN THE HEAD with !important on .button, which no external
   selector can outrank. Scoped body.mv2.woocommerce-cart throughout. */

/* the "Cart" title — Divi's et_pb_post_title module */

/* the qty box — matches the drawer's stepper and the buy panel */
body.mv2.woocommerce-cart .product-quantity .quantity{
  display:inline-flex;
  align-items:center;
}

/* the actions row: coupon on the left, Update cart on the right */

body.mv2.woocommerce-cart input#coupon_code:hover{ border-color:var(--mv-purple) !important; }
body.mv2.woocommerce-cart input#coupon_code:focus{
  outline:2px solid var(--mv-purple) !important;
  outline-offset:2px !important;
  border-color:var(--mv-purple) !important;
}

/* Apply coupon = secondary (outlined). Update cart = secondary too.
   Only ONE purple button on this page: Proceed to checkout. */
body.mv2.woocommerce-cart button[name="apply_coupon"],

body.mv2.woocommerce-cart button[name="apply_coupon"]:hover,

body.mv2.woocommerce-cart button[name="apply_coupon"]:focus-visible,
body.mv2.woocommerce-cart button[name="update_cart"]:focus-visible{
  outline:2px solid var(--mv-purple) !important;
  outline-offset:2px !important;
}
/* Woo disables Update cart until something changes — show that honestly */

@media (max-width:782px){
  
  
  body.mv2.woocommerce-cart button[name="apply_coupon"],
  
}
/* Checkout button + container width — Divi's inline critical CSS uses
   !important on .button, so we must too. Row max-width narrows the page. */

/* mv-cart3-applied */

/* ── Cart page, round 3 ──────────────────────────────────────────
   (a) close the dead space: Divi stacks four modules in one row and
       et_pb_wc_cart_notice renders EMPTY (textLen 0) but still takes
       its full module height + margin. (b) make the interval picker
       read as a subscription control, not a twin of the qty box. */

/* (a) spacing */

/* the empty notice module: collapse it entirely, but ONLY when empty */
body.mv2.woocommerce-cart .et_pb_wc_cart_notice:has(.woocommerce-notices-wrapper:empty){ display:none !important; }
body.mv2.woocommerce-cart .woocommerce-notices-wrapper:empty{ display:none !important; }
body.mv2.woocommerce-cart .et_pb_wc_cart_notice{ margin:0 !important; }

/* title sits closer to the header, and the intro copy closer to the title */

/* breathing room above the table, deliberate rather than accidental */

/* (b) the two controls must not look alike.
   The qty box stays a plain white input. The interval picker becomes
   part of the green subscription block: tinted, green-bordered. */

/* the qty column: label it so the two are never confused */
body.mv2.woocommerce-cart .product-quantity{ text-align:center; }

/* Cart interval picker - light purple (too much green in one spot) */

/* Cart: "saving…" state on the buy control.
   The interval saves automatically, so say so — a spinner over the box that
   is changing, and a word, because a spinner alone is not an explanation. */

body.mv2.woocommerce-cart .mv-cbuy.is-busy > *{ opacity:.35; transition:opacity .12s ease; }
body.mv2.woocommerce-cart .mv-cbuy.is-busy::before{
  content:"";
  position:absolute;
  inset:-4px;
  background:rgba(255,255,255,.55);
  border-radius:var(--mv-radius);
  z-index:1;
}
body.mv2.woocommerce-cart .mv-cbuy.is-busy::after{
  content:"Saving\2026";
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:var(--mv-font-body);
  font-size:13px;
  font-weight:600;
  color:var(--mv-purple);
  letter-spacing:.02em;
  padding-left:26px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cg fill='none' stroke='%238300E9' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='9' cy='9' r='7' stroke-opacity='.22'/%3E%3Cpath d='M9 2a7 7 0 0 1 7 7'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 9 9' to='360 9 9' dur='.75s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center left calc(50% - 34px);
}
@media (prefers-reduced-motion:reduce){
  body.mv2.woocommerce-cart .mv-cbuy.is-busy::after{ background-image:none; padding-left:0; }
}

/* Cart cell: price + green pill, purple picker, then the toggle */

body.mv2.woocommerce-cart .mv-cbuy.is-busy{ pointer-events:none; }

@media (max-width:782px){
  
  
  
}

/* Mode toggle: active colour says WHICH mode, not just that one is active.
   Buy once active = purple (a control); Subscribe active = green (your subscription).
   Inactive is always white. */
body.mv2.woocommerce-cart .mv-cbuy__mode{
  min-height:var(--mv-tap);
  padding:0 var(--mv-s3);
  border:0;
  background:#FFFFFF;
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-small);
  font-weight:600;
  color:#5A5560;
  cursor:pointer;
  transition:background-color .15s ease, color .15s ease;
}
body.mv2.woocommerce-cart .mv-cbuy__mode:hover{ background:var(--mv-surface-2); }
body.mv2.woocommerce-cart .mv-cbuy__mode[data-mode="once"].is-on{
  background:var(--mv-purple-50);
  color:var(--mv-purple);
}
body.mv2.woocommerce-cart .mv-cbuy__mode[data-mode="sub"].is-on{
  background:rgba(88,183,53,.14);
  color:var(--mv-green-900);
}
body.mv2.woocommerce-cart .mv-cbuy__mode:focus-visible{
  outline:2px solid var(--mv-purple);
  outline-offset:-2px;
}

/* Cart: dark header bar + the Delivery option column */
body.mv2.woocommerce-cart .shop_table thead th{
  background:var(--mv-ink) !important;
  color:#FFFFFF !important;
  font-family:var(--mv-font-display);
  font-size:12px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:var(--mv-s3);
  border:0;
}
body.mv2.woocommerce-cart .shop_table thead th:first-child{ border-top-left-radius:var(--mv-radius-lg); }
body.mv2.woocommerce-cart .shop_table thead th:last-child{ border-top-right-radius:var(--mv-radius-lg); }

/* Cart: round remove, two-line name, qty stepper, reassurance sidebar */
body.mv2.woocommerce-cart td.product-remove a.remove{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border:1px solid var(--mv-line) !important;
  border-radius:50% !important;
  background:#FFFFFF !important;
  color:#5A5560 !important;
  font-size:18px !important;
  line-height:1 !important;
  text-decoration:none !important;
  transition:border-color .15s ease, color .15s ease, background-color .15s ease;
}
body.mv2.woocommerce-cart td.product-remove a.remove:hover{
  border-color:#B3261E !important;
  color:#B3261E !important;
  background:rgba(179,38,30,.06) !important;
}
body.mv2.woocommerce-cart td.product-remove a.remove:focus-visible{
  outline:2px solid var(--mv-purple);
  outline-offset:2px;
}

body.mv2.woocommerce-cart .mv-qty{
  display:inline-flex;
  align-items:center;
  border:1px solid var(--mv-line);
  border-radius:var(--mv-radius);
  background:#FFFFFF;
  overflow:hidden;
}
body.mv2.woocommerce-cart .mv-qty__b{
  width:40px;
  height:40px;
  border:0;
  background:transparent;
  color:var(--mv-ink);
  font-size:17px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
  transition:background-color .12s ease;
}
body.mv2.woocommerce-cart .mv-qty__b[data-step="-1"]:hover{ background:rgba(179,38,30,.10); color:#B3261E; }
body.mv2.woocommerce-cart .mv-qty__b[data-step="1"]:hover{ background:rgba(47,107,28,.10); color:var(--mv-green-900); }
body.mv2.woocommerce-cart .mv-qty__b:focus-visible{ outline:2px solid var(--mv-purple); outline-offset:-2px; }
body.mv2.woocommerce-cart input.mv-qty__n{
  width:44px !important;
  min-height:40px !important;
  padding:0 !important;
  border:0 !important;
  border-left:1px solid var(--mv-line) !important;
  border-right:1px solid var(--mv-line) !important;
  border-radius:0 !important;
  background:#FFFFFF !important;
  font-family:var(--mv-font-body) !important;
  font-size:var(--mv-t-small) !important;
  font-weight:600 !important;
  color:var(--mv-ink) !important;
  text-align:center !important;
  box-shadow:none !important;
  -moz-appearance:textfield;
}
body.mv2.woocommerce-cart input.mv-qty__n::-webkit-outer-spin-button,
body.mv2.woocommerce-cart input.mv-qty__n::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }

body.mv2.woocommerce-cart .mv-side__ship{
  display:flex;
  align-items:center;
  gap:var(--mv-s2);
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-body);
  color:var(--mv-ink);
  padding-bottom:var(--mv-s3);
  border-bottom:1px solid var(--mv-line);
  margin-bottom:var(--mv-s3);
}
body.mv2.woocommerce-cart .mv-side__ship strong{ color:var(--mv-purple); }

body.mv2.woocommerce-cart ul.mv-side__list{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.mv2.woocommerce-cart ul.mv-side__list li{
  list-style:none !important;
  padding:0 0 var(--mv-s3) !important;
  margin:0 !important;
}
body.mv2.woocommerce-cart ul.mv-side__list li:last-child{ padding-bottom:0 !important; }

body.mv2.woocommerce-cart .mv-side__note{
  font-family:var(--mv-font-body);
  font-size:13px;
  color:var(--mv-purple);
  text-align:center;
  margin:var(--mv-s2) 0 0 !important;
}

/* Cart bottom: totals + sidebar side by side, the ZIP field, recurring block */

body.mv2.woocommerce-cart .mv-side__list li{
  display:flex !important;
  align-items:flex-start;
  gap:var(--mv-s2);
}

body.mv2.woocommerce-cart .mv-side__rt{ display:block; }

body.mv2.woocommerce-cart input.mv-zip__in{
  width:88px !important;
  min-height:38px !important;
  padding:0 10px !important;
  font-family:var(--mv-font-body) !important;
  font-size:14px !important;
  font-weight:600 !important;
  letter-spacing:.04em;
  color:var(--mv-ink) !important;
  text-align:center !important;
  background:#FFFFFF !important;
  border:1px solid rgba(131,0,233,.30) !important;
  border-radius:var(--mv-radius) !important;
  box-shadow:none !important;
}
body.mv2.woocommerce-cart input.mv-zip__in:hover{ border-color:var(--mv-purple) !important; }
body.mv2.woocommerce-cart input.mv-zip__in:focus,
body.mv2.woocommerce-cart input.mv-zip__in:focus-visible{
  outline:2px solid var(--mv-purple) !important;
  outline-offset:2px !important;
}
body.mv2.woocommerce-cart input.mv-zip__in:disabled{ opacity:.6; }

body.mv2.woocommerce-cart #shipping_method{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}

@media (max-width:1024px){
  
  
}

body.mv2.woocommerce-cart .cart_totals .shop_table thead th{
  background:transparent !important;
  color:inherit !important;
}

/* Proceed to checkout — the one purple button on the page, in the sidebar */
body.mv2.woocommerce-cart .mv-side__go{
  margin-top:var(--mv-s3);
  padding-top:var(--mv-s3);
  border-top:1px solid var(--mv-line);
}

/* The page is light grey so the white cards read AS cards; the sidebar is one. */

@media (max-width:1024px){
  
}

/* Proceed to checkout. Divi fades .checkout-button on hover via opacity in its
   inline critical CSS — we must set opacity:1 or the button greys out. */

@media (prefers-reduced-motion:reduce){
  
}

/* Proceed to checkout — our own class. Divi styles .checkout-button/.button.alt,
   so by not wearing those classes we need no !important at all. */
body.mv2.woocommerce-cart a.mv-go{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:56px;
  padding:0 var(--mv-s3);
  margin:0;
  background:var(--mv-purple);
  color:#FFFFFF;
  border:0;
  border-radius:var(--mv-radius);
  font-family:var(--mv-font-display);
  font-size:1.0625rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-align:center;
  text-decoration:none;
  line-height:1.1;
  box-shadow:0 6px 16px -8px rgba(131,0,233,.65);
  transition:background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
body.mv2.woocommerce-cart a.mv-go:hover{
  background:#6a00bd;
  color:#FFFFFF;
  text-decoration:none;
  transform:translateY(-1px);
  box-shadow:0 10px 22px -8px rgba(131,0,233,.85);
}
body.mv2.woocommerce-cart a.mv-go:active{
  transform:translateY(0);
  box-shadow:0 4px 12px -8px rgba(131,0,233,.7);
}
body.mv2.woocommerce-cart a.mv-go:focus-visible{
  outline:3px solid var(--mv-purple-900);
  outline-offset:2px;
}
body.mv2.woocommerce-cart .mv-go__lock{
  display:inline-flex;
  width:19px;
  height:19px;
  flex:0 0 19px;
  color:#FFFFFF;
}
body.mv2.woocommerce-cart .mv-go__lock svg{ width:100%; height:100%; }
body.mv2.woocommerce-cart .mv-go__t{ display:inline-block; }
@media (prefers-reduced-motion:reduce){
  body.mv2.woocommerce-cart a.mv-go,
  body.mv2.woocommerce-cart a.mv-go:hover{ transform:none; transition:background-color .15s ease; }
}

/* The ZIP save veils the whole shipping cell — same treatment the cart items get.
   It stays up until the reload lands, so there is no gap where nothing is said. */
body.mv2.woocommerce-cart tr.woocommerce-shipping-totals td{ position:relative; }
body.mv2.woocommerce-cart tr.woocommerce-shipping-totals td.is-busy{ pointer-events:none; }
body.mv2.woocommerce-cart tr.woocommerce-shipping-totals td.is-busy > *{
  opacity:.35;
  transition:opacity .12s ease;
}
body.mv2.woocommerce-cart tr.woocommerce-shipping-totals td.is-busy::before{
  content:"";
  position:absolute;
  inset:-4px;
  background:rgba(255,255,255,.55);
  border-radius:var(--mv-radius);
  z-index:1;
}
body.mv2.woocommerce-cart tr.woocommerce-shipping-totals td.is-busy::after{
  content:"Checking\2026";
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:var(--mv-font-body);
  font-size:13px;
  font-weight:600;
  color:var(--mv-purple);
  letter-spacing:.02em;
  padding-left:26px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Cg fill='none' stroke='%238300E9' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='9' cy='9' r='7' stroke-opacity='.22'/%3E%3Cpath d='M9 2a7 7 0 0 1 7 7'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 9 9' to='360 9 9' dur='.75s' repeatCount='indefinite'/%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center left calc(50% - 42px);
}
body.mv2.woocommerce-cart .mv-side__ship.is-busy{
  opacity:.4;
  transition:opacity .12s ease;
}
@media (prefers-reduced-motion:reduce){
  body.mv2.woocommerce-cart tr.woocommerce-shipping-totals td.is-busy::after{ background-image:none; padding-left:0; }
}

/* Layout: a tight 1370px column, sentence-case title, and Divi module padding
   zeroed — .et_pb_wc_cart_products and .et_pb_wc_cart_notice each carried 72px
   top AND bottom, which is what left the page floating in dead space. */
body.mv2.woocommerce-cart .et_pb_section_0{
  background:#FFFFFF !important;
  padding-top:var(--mv-s4) !important;
  padding-bottom:var(--mv-s6) !important;
}
body.mv2.woocommerce-cart .et_pb_row{ max-width:1370px !important; width:92% !important; }

body.mv2.woocommerce-cart .et_pb_post_title{ margin-bottom:0 !important; }
body.mv2.woocommerce-cart h1.entry-title{
  font-family:var(--mv-font-body) !important;
  font-size:2rem !important;
  font-weight:700 !important;
  letter-spacing:-.01em !important;
  text-transform:none !important;
  color:var(--mv-ink) !important;
  padding:0 !important;
  margin:0 0 6px !important;
  line-height:1.15 !important;
}

/* "To view shipping options... select the state you are shipping to below." —
   a leftover Divi text module from the old cart. It is now WRONG (there is no
   state selector, just the ZIP field) and the mockup does not have it. Hidden
   rather than deleted from the page, so nothing is destroyed and it is one
   line to reverse. NOTE et_module_shortcode_output is NOT a real filter here
   (zero callbacks) — do not try to filter Divi module output that way. */
body.mv2.woocommerce-cart .et_pb_text:has(> .et_pb_text_inner > p > strong > a){ display:none !important; }

/* The shipping cell holds ONLY the rates + the ZIP row now. Woo's destination
   line and Change-address calculator are rendered directly by cart-shipping.php
   (the four calculator_enable_* filters only kill FIELDS INSIDE the form, not
   the form or the destination paragraph), and the sidebar already says where
   it is shipping to. */

/* The shipping cell holds ONLY the rates + the ZIP row now. Woo's destination
   line and Change-address calculator are rendered directly by cart-shipping.php
   (the four calculator_enable_* filters only kill FIELDS INSIDE the form, not
   the form or the destination paragraph), and the sidebar already says where
   it is shipping to. */
body.mv2.woocommerce-cart .woocommerce-shipping-destination{ display:none !important; }
body.mv2.woocommerce-cart .woocommerce-shipping-calculator{ display:none !important; }

/* Delivery cell + ZIP row, per the mockup */
body.mv2.woocommerce-cart td.product-delivery{
  min-width:250px;
  vertical-align:middle;
}
body.mv2.woocommerce-cart .mv-cbuy{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  min-width:0;
}

body.mv2.woocommerce-cart .mv-cbuy__modes{ margin:0; }

body.mv2.woocommerce-cart #shipping_method li{
  margin:0 0 6px !important;
}

/* Cart totals: heading INSIDE the column, narrow labels, amounts hard right,
   even rows. Plus filled sidebar icons — a thin grey stroke reads as a sketch. */

@media (max-width:1024px){
  
  
}body.mv2.woocommerce-cart .mv-side__ico{
  display:inline-flex;
  width:30px;
  height:30px;
  flex:0 0 30px;
  color:var(--mv-purple);
}
body.mv2.woocommerce-cart .mv-side__ico svg{ width:100%; height:100%; }
body.mv2.woocommerce-cart .mv-side__ri{
  display:inline-flex;
  width:36px;
  height:36px;
  flex:0 0 36px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:var(--mv-purple-50);
  color:var(--mv-purple);
}
body.mv2.woocommerce-cart .mv-side__ri svg{ width:20px; height:20px; }

/* Icon colour: the generic list-span rule was hitting .mv-side__ri (a span),
   so currentColor resolved to grey body text. Scope text to .mv-side__rt. */
body.mv2.woocommerce-cart ul.mv-side__list .mv-side__rt > span{
  display:block;
  font-family:var(--mv-font-body);
  font-size:13px;
  color:#5A5560;
  margin-top:2px;
}
body.mv2.woocommerce-cart ul.mv-side__list .mv-side__rt > strong{
  display:block;
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-small);
  font-weight:700;
  color:var(--mv-ink);
}
body.mv2.woocommerce-cart span.mv-side__ri{
  color:var(--mv-purple);
  background:var(--mv-purple-50);
}
body.mv2.woocommerce-cart span.mv-side__ri svg{ fill:currentColor; }
body.mv2.woocommerce-cart span.mv-side__ico{ color:var(--mv-purple); }
body.mv2.woocommerce-cart span.mv-side__ico svg{ fill:currentColor; }

/* THE WIDTH MISMATCH: .et_pb_wc_cart_products carries max-width:1180px AND its own
   padding:0 16px, while .et_pb_wc_cart_totals has max-width:none. So the products
   table sat 111px in and 222px narrower than the title and the totals. The earlier
   module reset zeroed padding-top/bottom and margin but NEVER max-width or the side
   padding. Kill all four. */
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_module{
  max-width:none !important;
  width:100% !important;
  padding:0 !important;
  margin:0 !important;
}
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_module_inner{
  max-width:none !important;
  width:100% !important;
}
body.mv2.woocommerce-cart .et_pb_wc_cart_products{ margin-top:0 !important; }

/* The interval picker: purple-50 wash + purple border. RESTORED after a
   delete-then-append pass silently replaced it with layout-only properties. */
body.mv2.woocommerce-cart .mv-cbuy__ivl{
  display:block;
  width:100%;
  margin:0;
  padding:var(--mv-s2);
  background:var(--mv-purple-50);
  border:1px solid rgba(131,0,233,.18);
  border-radius:var(--mv-radius);
  box-sizing:border-box;
}
body.mv2.woocommerce-cart .mv-cbuy__ivl[hidden]{ display:none; }
body.mv2.woocommerce-cart select.mv-cbuy__sel{
  width:100%;
  min-height:40px;
  padding:0 32px 0 10px;
  font-family:var(--mv-font-body);
  font-size:13px;
  color:var(--mv-ink);
  background-color:#FFFFFF;
  border:1px solid rgba(131,0,233,.30) !important;
  border-radius:var(--mv-radius) !important;
  cursor:pointer;
  box-sizing:border-box;
  -webkit-appearance:none;
  -moz-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238300E9' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
}
body.mv2.woocommerce-cart select.mv-cbuy__sel:hover{ border-color:var(--mv-purple) !important; }
body.mv2.woocommerce-cart select.mv-cbuy__sel:focus,
body.mv2.woocommerce-cart select.mv-cbuy__sel:focus-visible{
  outline:2px solid var(--mv-purple) !important;
  outline-offset:2px !important;
  border-color:var(--mv-purple) !important;
}
body.mv2.woocommerce-cart select.mv-cbuy__sel:disabled{ opacity:.5; cursor:default; }

/* CART TOTALS — one block, written from the cropped mockup. The h2 is the top of
   the card (rounded top, no bottom border) and the table is the bottom, so the
   heading sits INSIDE the card as the mockup shows. 13px rows, labels 700,
   amounts right, 1px dividers, Total in bold sans not Oswald. */

body.mv2.woocommerce-cart .cart_totals > .mv-side{
  grid-column:2;
  grid-row:1 / span 2;
  display:block;
  border:1px solid var(--mv-line);
  border-radius:14px;
  background:#FFFFFF;
  padding:var(--mv-s4);
  margin:0;
  position:sticky;
  top:100px;
}

body.mv2.woocommerce-cart .cart_totals .woocommerce-shipping-totals td{ text-align:left; }

@media (max-width:1024px){
  body.mv2.woocommerce-cart .cart_totals{ grid-template-columns:1fr !important; }
  body.mv2.woocommerce-cart .cart_totals > .mv-side{ grid-column:1; grid-row:auto; position:static; }
}

/* Matt: bigger flag; the products-to-totals gap 102px -> 32px; the intro to two
   lines (was capped 464px, wrapping to three); and the shipping label column
   halved so the rates sit closer to "Initial Shipment". */

/* Specificity fix: the module reset is 2 classes + !important, so these have to
   match it. .et_pb_text_1 is the intro paragraph (text_2 is the hidden stray). */

/* The products and totals modules live in DIFFERENT Divi rows, each carrying
   36px of vertical padding. That 72px — not any margin — was the gap. */
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_row{
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* Measured fixes: intro needs 820px for two lines; the ship th was pinned by our
   own nowrap; the gap moves to row_2 padding so it is not additive. */

body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_module.et_pb_wc_cart_totals{
  margin-top:0 !important;
}
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_row.et_pb_row_2{
  padding-top:32px !important;
}

/* table-layout:fixed means the FIRST ROW sets every column width — target the
   generic th, not the shipping row. And the flag needs an emoji font stack:
   Divi has none, so the regional-indicator pair rendered as letter boxes. */

/* The actions band: coupon left, UPDATE CART right with a rotate icon. */

body.mv2.woocommerce-cart input#coupon_code{
  width:270px !important;
  min-height:46px !important;
  padding:0 16px !important;
  margin:0 !important;
  background:#FFFFFF !important;
  border:1px solid var(--mv-line) !important;
  border-radius:10px !important;
  box-shadow:none !important;
  font-family:var(--mv-font-body) !important;
  font-size:14px !important;
  color:var(--mv-ink) !important;
}
body.mv2.woocommerce-cart input#coupon_code::placeholder{ color:#8A8590; opacity:1; }
body.mv2.woocommerce-cart input#coupon_code:focus,
body.mv2.woocommerce-cart input#coupon_code:focus-visible{
  outline:2px solid var(--mv-purple) !important;
  outline-offset:2px !important;
  border-color:var(--mv-purple) !important;
}

/* Update cart: BLACK at rest, PURPLE when there is something to save. */

body.mv2.woocommerce-cart button.mv-upd{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  
  min-height:46px;
  padding:0 20px;
  margin:0;
  background:#FFFFFF !important;
  border:1px solid var(--mv-line) !important;
  border-radius:10px !important;
  color:var(--mv-ink) !important;
  font-family:var(--mv-font-display);
  font-size:14px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:default;
  opacity:1 !important;
  transition:border-color .14s ease, color .14s ease, background-color .14s ease;
}
body.mv2.woocommerce-cart button.mv-upd:not(:disabled){
  border-color:var(--mv-purple) !important;
  color:var(--mv-purple) !important;
  background:var(--mv-purple-50) !important;
  cursor:pointer;
}
body.mv2.woocommerce-cart button.mv-upd:not(:disabled):hover{
  background:var(--mv-purple) !important;
  border-color:var(--mv-purple) !important;
  color:#FFFFFF !important;
}
body.mv2.woocommerce-cart button.mv-upd:focus-visible{
  outline:2px solid var(--mv-purple);
  outline-offset:2px;
}
body.mv2.woocommerce-cart .mv-upd__i{
  display:inline-flex;
  width:16px;
  height:16px;
  flex:0 0 16px;
}
body.mv2.woocommerce-cart .mv-upd__i svg{ width:100%; height:100%; }

/* The actions band is ONE row: coupon left, Update right. .coupon was flexing to
   the full cell width, which pushed the floated Update onto a second line. */

body.mv2.woocommerce-cart button.mv-upd{
  float:none !important;
  flex:0 0 auto;
  margin-left:auto;
}

/* Apply coupon: the purple ring was an OUTLINE, not a border. */

/* The TD is the flex row. A block div inside a table-cell fills it, so nothing
   on the CHILD can shrink it — the CONTAINER has to change. */

body.mv2.woocommerce-cart button.mv-upd{
  float:none !important;
  flex:0 0 auto;
  margin-left:auto !important;
}

/* The actions band: the TD stays a table-cell (colspan=7 must keep spanning);
   .coupon goes inline-flex + float:left so it shrinks to content. */
body.mv2.woocommerce-cart td.actions{
  background:var(--mv-surface-2);
  padding:14px 16px !important;
  border:0 !important;
  overflow:hidden;
}
body.mv2.woocommerce-cart td.actions .coupon{
  display:inline-flex;
  align-items:center;
  gap:14px;
  float:left;
  width:auto !important;
  margin:0;
  padding:0;
}
body.mv2.woocommerce-cart button.mv-upd{
  float:right;
  margin:0 !important;
}

/* Apply coupon: white card + 1px --mv-line, matching the coupon input beside it. */
body.mv2.woocommerce-cart button.mv-apply{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 20px;
  margin:0;
  background:#FFFFFF !important;
  border:1px solid var(--mv-line) !important;
  outline:0 !important;
  border-radius:10px !important;
  color:var(--mv-purple) !important;
  font-family:var(--mv-font-display);
  font-size:14px;
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  box-shadow:none !important;
  transition:background-color .12s ease, border-color .12s ease;
}
body.mv2.woocommerce-cart button.mv-apply:hover{
  background:var(--mv-purple-50) !important;
  border-color:var(--mv-purple) !important;
  outline:0 !important;
  color:var(--mv-purple) !important;
}
body.mv2.woocommerce-cart button.mv-apply:focus{
  outline:0 !important;
}
body.mv2.woocommerce-cart button.mv-apply:focus-visible{
  outline:2px solid var(--mv-purple) !important;
  outline-offset:2px !important;
}

/* The whitelist line: 13px bold, 8px clear of the table below it. */
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_text.et_pb_text_1{
  margin-bottom:8px !important;
}
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_text.et_pb_text_1 p{
  font-size:13px !important;
  font-weight:700 !important;
  line-height:1.5 !important;
  color:#5A5560 !important;
  margin:0 !important;
  max-width:860px !important;
}
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_text.et_pb_text_1 a{
  color:var(--mv-purple) !important;
  font-weight:700 !important;
  text-decoration:underline !important;
  text-underline-offset:2px;
}
body.mv2.woocommerce-cart .et_pb_section_0 .et_pb_text.et_pb_text_1 a:hover{
  color:var(--mv-purple-deep) !important;
}

/* "Subscription renewal" matches the active Subscribe & save button beneath it. */
body.mv2.woocommerce-cart .mv-cbuy__renew{
  display:block;
  align-self:flex-start;
  margin:0 0 0 2px;
  font-family:var(--mv-font-body) !important;
  font-size:15px !important;
  font-weight:600 !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  color:var(--mv-green-900) !important;
  line-height:1.3;
}

/* Cart totals: border-collapse:separate so the card border survives, + 15px rows. */
body.mv2.woocommerce-cart .cart_totals > .shop_table{
  grid-column:1;
  grid-row:2;
  border:1px solid var(--mv-line);
  border-top:0;
  border-radius:0 0 14px 14px;
  background:#FFFFFF;
  padding:0;
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}
body.mv2.woocommerce-cart .cart_totals > h2{
  grid-column:1;
  grid-row:1;
  align-self:start;
  margin:0 !important;
  padding:18px 22px 10px !important;
  font-family:var(--mv-font-body) !important;
  font-size:1.625rem !important;
  font-weight:700 !important;
  letter-spacing:-.01em !important;
  text-transform:none !important;
  color:var(--mv-ink) !important;
  background:#FFFFFF;
  border:1px solid var(--mv-line);
  border-bottom:0;
  border-radius:14px 14px 0 0;
  width:100%;
  box-sizing:border-box;
}
body.mv2.woocommerce-cart .cart_totals table th{
  width:28%;
  text-align:left;
  vertical-align:top;
  padding:13px 22px !important;
  border:0 !important;
  border-top:1px solid var(--mv-line) !important;
  font-family:var(--mv-font-body) !important;
  font-size:17px !important;
  font-weight:700 !important;
  color:var(--mv-ink) !important;
  line-height:1.4 !important;
}
body.mv2.woocommerce-cart .cart_totals table td{
  text-align:right;
  vertical-align:top;
  padding:13px 22px !important;
  border:0 !important;
  border-top:1px solid var(--mv-line) !important;
  font-family:var(--mv-font-body) !important;
  font-size:17px !important;
  font-weight:400 !important;
  color:var(--mv-ink) !important;
  line-height:1.4 !important;
}
body.mv2.woocommerce-cart .cart_totals tr:first-child th,
body.mv2.woocommerce-cart .cart_totals tr:first-child td{ border-top:0 !important; }

/* Product name + price: bold, ink. The variant line stays light for contrast. */
body.mv2.woocommerce-cart .mv-cname{ display:block; }
body.mv2.woocommerce-cart .mv-cname__t{
  display:block;
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-body);
  font-weight:700 !important;
  color:var(--mv-ink);
  text-decoration:none;
  line-height:1.3;
}
body.mv2.woocommerce-cart .mv-cname__t:hover{ color:var(--mv-purple); }
body.mv2.woocommerce-cart .mv-cname__v{
  display:block;
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-small);
  color:#5A5560;
  margin-top:2px;
}
body.mv2.woocommerce-cart .mv-cprice{
  font-family:var(--mv-font-body);
  font-size:var(--mv-t-small);
  font-weight:700 !important;
  color:var(--mv-ink);
  white-space:nowrap;
}

/* Sidebar 380 -> 440 so the reassurance sentences sit on one line. */
body.mv2.woocommerce-cart .cart_totals{
  display:grid;
  grid-template-columns:1fr 430px;
  column-gap:var(--mv-s4);
  row-gap:0;
  align-items:start;
  border:0 !important;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
}

/* Recurring block: show the SELECTED method as text, hide the chooser. The radios
   stay in the form — Local pickup on renewals is allowed and must keep working. */
body.mv2.woocommerce-cart .cart_totals tr.recurring-total.shipping td ul{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
body.mv2.woocommerce-cart .cart_totals tr.recurring-total.shipping td li{
  display:none !important;
}
body.mv2.woocommerce-cart .cart_totals tr.recurring-total.shipping td li:has(input:checked){
  display:block !important;
  margin:0 !important;
  padding:0 !important;
}
body.mv2.woocommerce-cart .cart_totals tr.recurring-total.shipping td li input[type="radio"]{
  display:none !important;
}
body.mv2.woocommerce-cart .cart_totals tr.recurring-total.shipping td li label{
  cursor:default;
  font-family:var(--mv-font-body);
  font-size:15px;
  font-weight:400;
  color:var(--mv-ink);
}

/* The recurring block is TINTED so it reads as its own zone — it is <tr>s inside
   one table, so a genuinely separate CARD is not possible without rebuilding the
   markup Woo Subscriptions generates. */
body.mv2.woocommerce-cart .cart_totals .recurring-totals th{
  font-family:var(--mv-font-body) !important;
  font-size:17px !important;
  font-weight:700 !important;
  letter-spacing:0 !important;
  text-transform:none !important;
  color:var(--mv-ink) !important;
  padding:18px 22px 10px !important;
  border-top:1px solid var(--mv-line) !important;
  background:var(--mv-surface-2);
}
body.mv2.woocommerce-cart .cart_totals tr.recurring-total th,
body.mv2.woocommerce-cart .cart_totals tr.recurring-total td{
  background:var(--mv-surface-2);
  border-top:0 !important;
  padding-top:8px !important;
  padding-bottom:8px !important;
}
body.mv2.woocommerce-cart .cart_totals tr.recurring-total:last-child th,
body.mv2.woocommerce-cart .cart_totals tr.recurring-total:last-child td{
  padding-bottom:18px !important;
}
body.mv2.woocommerce-cart .cart_totals .order-total th,
body.mv2.woocommerce-cart .cart_totals .order-total td{
  font-family:var(--mv-font-body) !important;
  font-size:1.5rem !important;
  font-weight:700 !important;
  color:var(--mv-ink) !important;
  padding-top:16px !important;
  padding-bottom:16px !important;
}
body.mv2.woocommerce-cart .cart_totals .order-total.recurring-total th,
body.mv2.woocommerce-cart .cart_totals .order-total.recurring-total td{
  font-size:17px !important;
  font-weight:700 !important;
  color:var(--mv-ink) !important;
  padding-bottom:18px !important;
}

/* TOTAL + QUANTITY: header and value centred on each other in their shared cell. */
body.mv2.woocommerce-cart .woocommerce-cart-form .shop_table thead th.product-subtotal{
  text-align:center;
}
body.mv2.woocommerce-cart td.product-subtotal{
  text-align:center;
}
body.mv2.woocommerce-cart .woocommerce-cart-form .shop_table thead th.product-quantity{
  text-align:center;
}
body.mv2.woocommerce-cart td.product-quantity{
  text-align:center;
}

/* Checkout button: identical in the drawer and on the cart page — same words,
   same padlock, same 54px/18px. And View full cart is findable without competing. */
.mv-drawer__go{
  gap:10px;
}
.mv-drawer__go .mv-go__lock{
  display:inline-flex;
  width:19px;
  height:19px;
  flex:0 0 19px;
  color:#fff;
}
.mv-drawer__go .mv-go__lock svg{ width:100%; height:100%; }
.mv-drawer__view{
  color:var(--mv-ink);
  font-weight:600;
}
.mv-drawer__view:hover{ color:var(--mv-purple); }
body.mv2.woocommerce-cart a.mv-go{
  min-height:54px;
  font-size:1.125rem;
}

/* The ZIP row: label matches the table's other labels, tick only, aligned with
   the Initial Shipment heading. */
body.mv2.woocommerce-cart tr.woocommerce-shipping-totals th{
  padding-top:13px !important;
}
body.mv2.woocommerce-cart .mv-zip{
  display:flex;
  align-items:center;
  gap:var(--mv-s2);
  flex-wrap:wrap;
  margin:-7px 0 12px;
  font-family:var(--mv-font-body);
}
body.mv2.woocommerce-cart .mv-zip__lbl{
  font-family:var(--mv-font-body);
  font-size:17px;
  font-weight:700;
  color:var(--mv-ink);
  white-space:nowrap;
}
body.mv2.woocommerce-cart .mv-zip__note{
  font-family:var(--mv-font-body);
  font-size:17px;
  font-weight:700;
  color:#5A5560;
  line-height:1;
}
body.mv2.woocommerce-cart .mv-zip__note.is-ok{
  color:var(--mv-green);
  font-size:20px;
}
body.mv2.woocommerce-cart .mv-zip__note.is-ok::before{ content:"\2713"; }
body.mv2.woocommerce-cart .mv-zip__note.is-bad{ color:#B3261E; font-size:13px; font-weight:600; }
body.mv2.woocommerce-cart .mv-zip__note.is-busy{ color:var(--mv-purple); font-size:13px; font-weight:600; }
/* ===== MV2 CHECKOUT — START (restyle) ===== */
body.mv2.woocommerce-checkout .et_pb_row{max-width:1440px !important;padding-top:0 !important;padding-bottom:0 !important}
body.mv2.woocommerce-checkout .et_pb_section_0{padding-top:var(--mv-s4) !important;padding-bottom:48px !important}
body.mv2.woocommerce-checkout .et_pb_module{margin-bottom:0 !important}
body.mv2.woocommerce-checkout h1.entry-title{font-family:'Barlow Condensed',sans-serif;font-size:clamp(1.75rem,3.5vw,2.5rem);letter-spacing:.02em;text-transform:uppercase;padding:var(--mv-s5) 0 var(--mv-s3) !important;margin:0}
body.mv2.woocommerce-checkout .et_pb_module h3{font-family:'Barlow Condensed',sans-serif;font-size:1.375rem;letter-spacing:.02em;text-transform:uppercase;margin:0 0 var(--mv-s3);padding:0}
body.mv2.woocommerce-checkout .form-row{margin:0 0 var(--mv-s3) !important;padding:0 !important}
body.mv2.woocommerce-checkout .form-row label{display:block;font-size:.9375rem;font-weight:600;color:#3F3B45;margin:0 0 6px;line-height:1.3}
body.mv2.woocommerce-checkout .form-row .required{color:var(--mv-purple);text-decoration:none}
body.mv2.woocommerce-checkout .form-row input.input-text,body.mv2.woocommerce-checkout .form-row textarea,body.mv2.woocommerce-checkout .form-row select{width:100%;min-height:var(--mv-tap);padding:0 14px;font-family:"Open Sans",sans-serif;font-size:var(--mv-t-body);color:#231F20;background:#FFFFFF !important;border:1px solid var(--mv-line) !important;border-radius:8px !important;box-shadow:none !important;transition:border-color .15s,box-shadow .15s}
body.mv2.woocommerce-checkout .form-row textarea{padding:12px 14px;min-height:96px;line-height:1.5}
body.mv2.woocommerce-checkout .form-row input.input-text:hover,body.mv2.woocommerce-checkout .form-row select:hover{border-color:#C9C6CE !important}
body.mv2.woocommerce-checkout .form-row input.input-text:focus,body.mv2.woocommerce-checkout .form-row textarea:focus,body.mv2.woocommerce-checkout .form-row select:focus{border-color:var(--mv-purple) !important;box-shadow:0 0 0 3px rgba(131,0,233,.14) !important;outline:none}
body.mv2.woocommerce-checkout .form-row input.input-text::placeholder,body.mv2.woocommerce-checkout .form-row textarea::placeholder{color:#9A96A1}
body.mv2.woocommerce-checkout .form-row-first,body.mv2.woocommerce-checkout .form-row-last{width:calc(50% - (var(--mv-s2) / 2)) !important;float:none !important}
body.mv2.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,body.mv2.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper{display:flex;flex-wrap:wrap;gap:0 var(--mv-s2)}
body.mv2.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,body.mv2.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row{flex:1 1 100%}
body.mv2.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,body.mv2.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,body.mv2.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first,body.mv2.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last{flex:1 1 calc(50% - (var(--mv-s2) / 2));width:auto !important}
/* select2 — the native select is 1x1, style the replacement */
body.mv2.woocommerce-checkout .select2-container--default .select2-selection--single{height:var(--mv-tap) !important;background:#FFFFFF !important;border:1px solid var(--mv-line) !important;border-radius:8px !important;display:flex;align-items:center}
body.mv2.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{line-height:normal;padding:0 14px;font-size:var(--mv-t-body);color:#231F20}
body.mv2.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{height:var(--mv-tap);right:8px}
body.mv2.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single{border-color:var(--mv-purple) !important;box-shadow:0 0 0 3px rgba(131,0,233,.14)}
body.mv2.woocommerce-checkout .select2-dropdown{border:1px solid var(--mv-line);border-radius:8px;overflow:hidden}
body.mv2.woocommerce-checkout .select2-container--default .select2-results__option--highlighted[aria-selected]{background:var(--mv-purple-50);color:var(--mv-purple)}
/* coupon bar */
body.mv2.woocommerce-checkout .woocommerce-form-coupon-toggle{margin:0 0 var(--mv-s4)}
body.mv2.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info{background:var(--mv-surface-2) !important;color:#3F3B45 !important;border:1px solid var(--mv-line);border-left:3px solid var(--mv-purple);border-radius:8px;padding:14px 16px;font-size:.9375rem}
body.mv2.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before{display:none}
body.mv2.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a{color:var(--mv-purple);font-weight:600}
/* order review table */
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;background:#FFFFFF;border:1px solid var(--mv-line);border-radius:12px;overflow:hidden}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table th,body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td{padding:14px 16px;border:0;border-bottom:1px solid var(--mv-line);font-size:var(--mv-t-body);text-align:left}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child th,body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr:last-child td{border-bottom:0}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table thead th{font-family:'Barlow Condensed',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-size:.875rem;background:var(--mv-surface-2)}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child,body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child{text-align:right}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td{font-family:'Barlow Condensed',sans-serif;font-size:1.25rem;background:var(--mv-surface-2)}
/* place order */
body.mv2.woocommerce-checkout #place_order{width:100% !important;min-height:54px !important;background:var(--mv-purple) !important;background-image:none !important;color:#FFFFFF !important;font-family:'Barlow Condensed',sans-serif !important;font-size:1.125rem !important;letter-spacing:.04em;text-transform:uppercase;border:0 !important;border-radius:10px !important;padding:0 !important;cursor:pointer;transition:background .15s}
body.mv2.woocommerce-checkout #place_order:hover{background:var(--mv-purple-deep) !important}
body.mv2.woocommerce-checkout #place_order::after{display:none !important}
/* ===== MV2 CHECKOUT — END ===== */
/* ===== MV2 CHECKOUT 2-COL — START (delete this block to revert to stacked) ===== */
@media (min-width:1100px){
  body.mv2.woocommerce-checkout .et_pb_section_0{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);column-gap:var(--mv-s5);row-gap:0;align-items:start;max-width:1440px;margin:0 auto;padding-left:24px;padding-right:24px;box-sizing:border-box}
  body.mv2.woocommerce-checkout .et_pb_section_0 > .et_pb_row{max-width:none !important;width:100% !important;margin:0 !important}
  body.mv2.woocommerce-checkout .et_pb_section_0 > .et_pb_row_0{grid-column:1 / -1}
  body.mv2.woocommerce-checkout .et_pb_section_0 > .et_pb_row_1{grid-column:1;grid-row:2}
  body.mv2.woocommerce-checkout .et_pb_section_0 > .et_pb_row_2{grid-column:2;grid-row:2;position:sticky;top:calc(var(--mv-head-h,81px) + var(--mv-s3))}
  body.mv2.admin-bar.woocommerce-checkout .et_pb_section_0 > .et_pb_row_2{top:calc(var(--mv-head-h,81px) + 32px + var(--mv-s3))}
  body.mv2.woocommerce-checkout .et_pb_section_0 > .et_pb_row_2 .et_pb_column{width:100% !important;margin:0 !important}
  body.mv2.woocommerce-checkout .et_pb_wc_checkout_order_details,body.mv2.woocommerce-checkout .et_pb_wc_checkout_payment_info{background:var(--mv-surface-2);border:1px solid var(--mv-line);border-radius:12px;padding:var(--mv-s4) !important}
  body.mv2.woocommerce-checkout .et_pb_wc_checkout_order_details{margin-bottom:var(--mv-s3) !important}
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table th,body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td{padding:12px 14px;font-size:1rem}
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table thead th{font-size:.8125rem}
}
/* ===== MV2 CHECKOUT 2-COL — END ===== */
/* ===== MV2 CHECKOUT PANELS — START ===== */
/* section panels */
body.mv2.woocommerce-checkout .et_pb_wc_checkout_billing,body.mv2.woocommerce-checkout .et_pb_wc_checkout_shipping{background:#FFFFFF;border:1px solid var(--mv-line);border-radius:12px;padding:var(--mv-s4) !important;margin-bottom:var(--mv-s3) !important}
body.mv2.woocommerce-checkout .et_pb_wc_checkout_billing h3,body.mv2.woocommerce-checkout .et_pb_wc_checkout_shipping h3,body.mv2.woocommerce-checkout .et_pb_wc_checkout_order_details h3{display:flex;align-items:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-size:1.25rem;text-transform:uppercase;letter-spacing:.02em;margin:0 0 var(--mv-s3);padding:0 0 var(--mv-s3);border-bottom:1px solid var(--mv-line)}
body.mv2.woocommerce-checkout .et_pb_wc_checkout_billing h3::before,body.mv2.woocommerce-checkout .et_pb_wc_checkout_shipping h3::before,body.mv2.woocommerce-checkout .et_pb_wc_checkout_order_details h3::before{content:"";flex:0 0 36px;height:36px;border-radius:50%;background:var(--mv-purple-50) no-repeat center/18px 18px}
body.mv2.woocommerce-checkout .et_pb_wc_checkout_billing h3::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%238300E9" stroke-width="1.8" stroke-linecap="round"><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4.4 3.6-8 8-8s8 3.6 8 8"/></svg>')}
body.mv2.woocommerce-checkout .et_pb_wc_checkout_shipping h3::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%238300E9" stroke-width="1.8" stroke-linecap="round"><path d="M1 6h12v10H1z"/><path d="M13 9h4l4 4v3h-8z"/><circle cx="6" cy="18" r="2"/><circle cx="17" cy="18" r="2"/></svg>')}
body.mv2.woocommerce-checkout .et_pb_wc_checkout_order_details h3::before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%238300E9" stroke-width="1.8" stroke-linecap="round"><path d="M6 2h12l2 6v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V8z"/><path d="M4 8h16"/><path d="M9 12h6"/></svg>')}
/* shipping method cards */
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods{list-style:none !important;margin:0 !important;padding:0 !important;display:flex;flex-direction:column;gap:8px}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li{margin:0 !important;padding:0 !important;list-style:none !important}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li::marker{content:none}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li label{display:flex !important;align-items:center;gap:10px;min-height:var(--mv-tap);margin:0 !important;padding:12px 14px;font-size:1rem;font-weight:400;line-height:1.35;text-align:left;background:#FFFFFF;border:1px solid var(--mv-line);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li label:hover{border-color:#C9C6CE}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li input[type=radio]{flex:0 0 auto;margin:0 !important;width:20px;height:20px;accent-color:var(--mv-purple)}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li input[type=radio]:checked + label{border-color:var(--mv-purple);background:var(--mv-purple-50);box-shadow:0 0 0 1px var(--mv-purple)}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li label .amount{margin-left:auto;font-weight:600;white-space:nowrap}
/* totals hierarchy */
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th{font-size:1.25rem}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td .amount{font-family:'Barlow Condensed',sans-serif;font-size:1.75rem;color:var(--mv-purple)}
/* trust block */
body.mv2.woocommerce-checkout .mv-cotrust{list-style:none;margin:var(--mv-s3) 0 0;padding:var(--mv-s3);background:#FFFFFF;border:1px solid var(--mv-line);border-radius:12px;display:flex;flex-direction:column;gap:14px}
body.mv2.woocommerce-checkout .mv-cotrust li{display:flex;gap:12px;align-items:flex-start;margin:0;list-style:none}
body.mv2.woocommerce-checkout .mv-cotrust svg{flex:0 0 22px;color:var(--mv-purple)}
body.mv2.woocommerce-checkout .mv-cotrust strong{display:block;font-size:.9375rem;color:#231F20;line-height:1.3}
body.mv2.woocommerce-checkout .mv-cotrust span{display:block;font-size:.8125rem;color:#5A5560;line-height:1.35}
/* terms + privacy */
body.mv2.woocommerce-checkout .woocommerce-privacy-policy-text{font-size:.8125rem;color:#5A5560;line-height:1.5;margin:var(--mv-s3) 0 var(--mv-s2)}
body.mv2.woocommerce-checkout .woocommerce-privacy-policy-text a{color:var(--mv-purple);font-weight:600}
body.mv2.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper{margin:0 0 var(--mv-s3)}
body.mv2.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row{margin:0 !important}
body.mv2.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text{font-size:.8125rem;color:#5A5560;line-height:1.45}
body.mv2.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input[type=checkbox]{width:20px;height:20px;accent-color:var(--mv-purple);margin-right:8px;vertical-align:-4px}
/* reassurance under the button */
body.mv2.woocommerce-checkout .mv-conote{display:flex;align-items:center;justify-content:center;gap:7px;margin:10px 0 0;font-size:.8125rem;color:var(--mv-green-900);text-align:center}
/* ===== MV2 CHECKOUT PANELS — END ===== */
/* ===== MV2 CHECKOUT SHIPROW — START ===== */
/* Keep table layout intact. Just stop the Shipment th eating 37% of the row. */
body.mv2.woocommerce-checkout tr.woocommerce-shipping-totals th{vertical-align:top;padding-right:8px !important;font-family:'Barlow Condensed',sans-serif;font-size:.875rem;text-transform:uppercase;letter-spacing:.02em}
body.mv2.woocommerce-checkout tr.woocommerce-shipping-totals td{width:auto !important;text-align:left !important;padding-left:8px !important}
/* cards can now use the width they have */
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li label{padding:10px 12px;gap:8px;font-size:.9375rem}
body.mv2.woocommerce-checkout ul.woocommerce-shipping-methods li label .woocommerce-Price-amount{margin-left:auto;font-weight:600;padding-left:8px}

body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table{table-layout:fixed}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table th:first-child,body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td:first-child{width:46%}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child,body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child{width:54%}
/* ===== MV2 CHECKOUT SHIPROW — END ===== */
/* ===== MV2 CHECKOUT COSHIP — START (shipping chooser panel, moved out of table) ===== */
body.mv2.woocommerce-checkout .mv-coship{
	margin:0 0 18px;
	padding:18px;
	background:#fff;
	border:1px solid var(--mv-line);
	border-radius:12px;
}
body.mv2.woocommerce-checkout .mv-coship__h{
	margin:0 0 12px;
	font-family:"Barlow Condensed",sans-serif;
	font-size:16px;
	font-weight:600;
	letter-spacing:.02em;
	text-transform:uppercase;
	color:var(--mv-ink,#1c1620);
}
body.mv2.woocommerce-checkout ul.mv-coship__list{
	list-style:none;
	margin:0;
	padding:0;
	display:flex;
	flex-direction:column;
	gap:10px;
}
body.mv2.woocommerce-checkout .mv-coship__item{
	margin:0;
	padding:0;
}
/* radio visually hidden but focusable; the label is the card */
body.mv2.woocommerce-checkout .mv-coship__item input.shipping_method{
	position:absolute;
	opacity:0;
	width:1px;height:1px;
	margin:-1px;
	pointer-events:none;
}
body.mv2.woocommerce-checkout .mv-coship__label{
	display:flex;
	align-items:center;
	gap:10px;
	width:100%;
	margin:0;
	padding:14px 16px;
	background:#fff;
	border:1.5px solid var(--mv-line);
	border-radius:10px;
	font-size:15px;
	line-height:1.3;
	color:var(--mv-ink,#1c1620);
	cursor:pointer;
	transition:border-color .12s,background .12s,box-shadow .12s;
}
body.mv2.woocommerce-checkout .mv-coship__item input.shipping_method:checked + .mv-coship__label{
	border-color:var(--mv-purple);
	background:var(--mv-purple-50);
	box-shadow:0 0 0 1px var(--mv-purple) inset;
}
body.mv2.woocommerce-checkout .mv-coship__item input.shipping_method:focus-visible + .mv-coship__label{
	outline:2px solid var(--mv-purple);
	outline-offset:2px;
}
body.mv2.woocommerce-checkout .mv-coship__ic{
	flex:0 0 auto;
	color:var(--mv-purple);
}
body.mv2.woocommerce-checkout .mv-coship__txt{
	flex:1 1 auto;
}
body.mv2.woocommerce-checkout .mv-coship__price{
	flex:0 0 auto;
	font-weight:600;
}
body.mv2.woocommerce-checkout .mv-coship__free{
	flex:0 0 auto;
	font-weight:700;
	color:#1a8f3c;
	letter-spacing:.04em;
}
/* the (now empty) initial shipping row in the totals table collapses out */
body.mv2.woocommerce-checkout tr.woocommerce-shipping-totals.shipping{
	display:none;
}
/* recurring shipping row: hide its radios, show the read-only line */
body.mv2.woocommerce-checkout tr.shipping.recurring-total ul.woocommerce-shipping-methods,
body.mv2.woocommerce-checkout tr.shipping.recurring-total input.shipping_method,
body.mv2.woocommerce-checkout tr.shipping.recurring-total .mv-coship__ic{
	display:none;
}
body.mv2.woocommerce-checkout .mv-corecur{
	display:inline-block;
	font-size:13px;
	color:#6b6470;
}
/* product thumbnail in the order summary */
body.mv2.woocommerce-checkout .mv-cothumb{
	display:inline-block;
	vertical-align:middle;
	margin-right:10px;
}
body.mv2.woocommerce-checkout .mv-cothumb img{
	width:44px;height:44px;
	object-fit:cover;
	border:1px solid var(--mv-line);
	border-radius:8px;
	display:block;
}
/* ===== MV2 CHECKOUT COSHIP — END ===== */

/* ===== MV2 CHECKOUT COSHIP FIX — START (conote width + recurring line targeting) ===== */
/* conote: the pre-existing rule left it flex/width:0 -> per-word wrap. Force full width, centered. */
body.mv2.woocommerce-checkout .mv-conote{
	display:block !important;
	width:100% !important;
	margin:10px 0 0 !important;
	text-align:center;
	font-size:13px;
	color:#6b6470;
	line-height:1.4;
}
/* recurring shipping row: the list has an EMPTY class (not woocommerce-shipping-methods),
   so target any ul in that cell. Hide it, print the read-only line via ::after. */
body.mv2.woocommerce-checkout tr.shipping.recurring-total td ul{
	display:none !important;
}
body.mv2.woocommerce-checkout tr.shipping.recurring-total td::after{
	content:"Matches selection above";
	display:block;
	font-size:13px;
	color:#6b6470;
}
/* ===== MV2 CHECKOUT COSHIP FIX — END ===== */

/* ===== MV2 CHECKOUT SUMMARY POLISH — START (roomier order summary, mockup match) ===== */
/* Chooser has left the table — flip columns so the PRODUCT NAME gets the room.
   NOTE: keep td as table-cell (float the thumb) — display:flex on a td breaks column width. */
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-name,
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-name{
	width:66% !important;
	text-align:left !important;
}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total,
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-total{
	width:34% !important;
	text-align:right !important;
}
body.mv2.woocommerce-checkout .cart_item td.product-name{
	padding:16px 0 !important;
	font-size:15px;
	line-height:1.35;
	vertical-align:middle;
	color:var(--mv-ink);
}
body.mv2.woocommerce-checkout .cart_item td.product-name .mv-cothumb{
	float:left;
	margin:0 14px 0 0 !important;
}
body.mv2.woocommerce-checkout .mv-cothumb img{
	width:64px !important;
	height:64px !important;
	border-radius:10px;
}
body.mv2.woocommerce-checkout .cart_item td.product-name .product-quantity{
	display:block;
	font-weight:400;
	font-size:13px;
	color:#6b6470;
	margin-top:2px;
}
body.mv2.woocommerce-checkout .cart_item td.product-total{
	padding:16px 0 !important;
	font-size:15px;
	font-weight:600;
	white-space:nowrap;
	vertical-align:middle;
}
/* even totals rhythm */
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td{
	padding:9px 0 !important;
	font-size:15px;
	line-height:1.4;
	border:0;
}
body.mv2.woocommerce-checkout tfoot .cart-subtotal th,
body.mv2.woocommerce-checkout tfoot .woocommerce-shipping-totals th{
	font-weight:500;
	color:#6b6470;
}
/* ORDER TOTAL: big, purple, breathing. !important to beat the earlier 28px panels rule. */
body.mv2.woocommerce-checkout tfoot .order-total{
	border-top:1px solid var(--mv-line);
}
body.mv2.woocommerce-checkout tfoot .order-total th{
	font-size:18px !important;
	font-weight:700;
	color:var(--mv-ink);
	padding-top:14px !important;
}
body.mv2.woocommerce-checkout tfoot .order-total .woocommerce-Price-amount{
	font-family:"Barlow Condensed",sans-serif !important;
	font-size:30px !important;
	font-weight:700 !important;
	color:var(--mv-purple) !important;
	line-height:1 !important;
}
/* recurring block as a quieter sub-section */
body.mv2.woocommerce-checkout tfoot .recurring-totals th{
	font-size:12px !important;
	font-weight:700;
	letter-spacing:.05em;
	text-transform:uppercase;
	color:#6b6470;
	padding-top:16px !important;
	border-top:1px solid var(--mv-line);
}
body.mv2.woocommerce-checkout tfoot tr.recurring-total th,
body.mv2.woocommerce-checkout tfoot tr.recurring-total td{
	font-size:14px !important;
	color:#6b6470;
}
body.mv2.woocommerce-checkout tfoot tr.order-total.recurring-total .woocommerce-Price-amount{
	font-size:18px !important;
	color:var(--mv-purple) !important;
	font-family:"Barlow Condensed",sans-serif !important;
	font-weight:700 !important;
}
/* ===== MV2 CHECKOUT SUMMARY POLISH — END ===== */

/* ===== MV2 CHECKOUT SHIPCOST FIX — START (show chosen shipping cost in summary) ===== */
/* The initial shipping row was hidden; now it carries the chosen cost, so show it as a clean totals line. */
body.mv2.woocommerce-checkout tr.woocommerce-shipping-totals.shipping{
	display:table-row !important;
}
body.mv2.woocommerce-checkout tr.woocommerce-shipping-totals.shipping th{
	font-weight:500;
	color:#6b6470;
	font-size:15px;
}
body.mv2.woocommerce-checkout tr.woocommerce-shipping-totals.shipping td{
	text-align:right !important;
	font-size:15px;
	font-weight:600;
}
body.mv2.woocommerce-checkout .mv-coship-cost--free{
	color:#1a8f3c;
	font-weight:700;
	letter-spacing:.04em;
}
/* ===== MV2 CHECKOUT SHIPCOST FIX — END ===== */

/* ===== MV2 CHECKOUT PAYMENT — START (Authorize.net gateway now visible in test mode) ===== */
/* Gateway chooser as selectable cards, matching the shipping-method cards. */
body.mv2.woocommerce-checkout #payment ul.wc_payment_methods{
	list-style:none !important;
	margin:0 0 16px 0 !important;
	padding:0 !important;
}
body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method{
	display:block !important;
	border:1.5px solid var(--mv-line) !important;
	border-radius:10px !important;
	padding:14px 16px !important;
	margin-bottom:10px !important;
	background:#fff !important;
	list-style:none !important;
	transition:border-color .15s ease, background .15s ease;
}
body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(input:checked){
	border-color:var(--mv-purple) !important;
	background:var(--mv-purple-50) !important;
}
body.mv2.woocommerce-checkout #payment li.wc_payment_method > label{
	font-size:16px !important;
	font-weight:600 !important;
	display:inline-flex !important;
	align-items:center !important;
	gap:8px !important;
	margin:0 !important;
	cursor:pointer;
}
/* gateway-provided card-brand icons: normalize to a consistent height, aligned inline */
body.mv2.woocommerce-checkout #payment li.wc_payment_method label img{
	height:24px !important;
	width:auto !important;
	display:inline-block !important;
	margin:0 2px !important;
	vertical-align:middle;
}
/* The payment box (the drop-down under a selected gateway): clean it up from Woo's gray. */
body.mv2.woocommerce-checkout #payment div.payment_box{
	background:#f7f5fa !important;
	border:1.5px solid var(--mv-line) !important;
	border-radius:10px !important;
	padding:18px !important;
	margin:4px 0 0 0 !important;
	font-size:14px;
	color:#4a4550;
}
/* remove Woo's little pointer triangle above the box */
body.mv2.woocommerce-checkout #payment div.payment_box::before{
	display:none !important;
}
/* Credit-card fields: the gateway forces 25px text / 62px height — bring them in line with every other field (17px / 48px). */
body.mv2.woocommerce-checkout .wc-credit-card-form input#authnet-card-number,
body.mv2.woocommerce-checkout .wc-credit-card-form input#authnet-card-expiry,
body.mv2.woocommerce-checkout .wc-credit-card-form input#authnet-card-cvc{
	font-size:17px !important;
	height:48px !important;
	line-height:48px !important;
	padding:0 14px !important;
	background:#fff !important;
	border:1.5px solid var(--mv-line) !important;
	border-radius:8px !important;
}
body.mv2.woocommerce-checkout .wc-credit-card-form label{
	font-size:15px !important;
	font-weight:600 !important;
}
/* ===== MV2 CHECKOUT PAYMENT — END ===== */

/* ===== MV2 CHECKOUT UPS ICON — START (real UPS logo on the UPS shipping card) ===== */
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="wbs"]) .mv-coship__ic{
	display:none !important;
}
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="wbs"]) .mv-coship__label::before{
	content:"";
	display:inline-block;
	width:21px;
	height:25px;
	margin-right:6px;
	background:url('https://v2.monavie.com/wp-content/uploads/2026/07/ups.png') center / contain no-repeat;
	flex:0 0 auto;
}
/* ===== MV2 CHECKOUT UPS ICON — END ===== */

/* ===== MV2 CHECKOUT RECURRING AMOUNT — START (show real recurring shipping cost, not "Matches selection above") ===== */
/* Supersedes the earlier COSHIP FIX rule that hid the recurring ul and printed "Matches selection above".
   Instead: show ONLY the chosen recurring method with its actual recalculated cost. */
body.mv2.woocommerce-checkout tr.shipping.recurring-total td ul{
	display:block !important;
	list-style:none !important;
	margin:0 !important;
	padding:0 !important;
}
body.mv2.woocommerce-checkout tr.shipping.recurring-total td ul li{
	display:none !important;
}
body.mv2.woocommerce-checkout tr.shipping.recurring-total td ul li:has(input:checked){
	display:block !important;
}
body.mv2.woocommerce-checkout tr.shipping.recurring-total td ul li:has(input:checked) input{
	display:none !important;
}
body.mv2.woocommerce-checkout tr.shipping.recurring-total td ul li:has(input:checked) label{
	font-weight:400 !important;
	cursor:default !important;
	margin:0 !important;
}
/* cancel the old "Matches selection above" overlay */
body.mv2.woocommerce-checkout tr.shipping.recurring-total td::after{
	content:none !important;
}
/* ===== MV2 CHECKOUT RECURRING AMOUNT — END ===== */

/* ===== MV2 CHECKOUT SUMMARY PADDING — START (breathing room; text was touching the panel edges) ===== */
/* The white review table had 0 horizontal padding, so content sat 1px from both borders. Inset it 20px. */
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-name,
body.mv2.woocommerce-checkout .cart_item td.product-name,
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr > th:first-child,
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr > td:first-child{
	padding-left:20px !important;
}
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total,
body.mv2.woocommerce-checkout .cart_item td.product-total,
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr > th:last-child,
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr > td:last-child{
	padding-right:20px !important;
}
/* ===== MV2 CHECKOUT SUMMARY PADDING — END ===== */

/* ===== MV2 CHECKOUT RECURRING COST — START (amount-only: "$8.06" or "FREE", no method label) ===== */
/* Supersedes RECURRING AMOUNT: hide the whole recurring shipping ul; show the clean .mv-reccost span
   written by mv2_recurring_cost_js (the chosen method's amount, or FREE). */
body.mv2.woocommerce-checkout tr.shipping.recurring-total td ul{
	display:none !important;
}
body.mv2.woocommerce-checkout tr.shipping.recurring-total td::after{
	content:none !important;
}
body.mv2.woocommerce-checkout tr.shipping.recurring-total td .mv-reccost{
	display:inline;
	font-size:14px;
	color:#6b6470;
}
/* ===== MV2 CHECKOUT RECURRING COST — END ===== */

/* ===== MV2 CHECKOUT ARROW — START (bigger, vertically-centered dropdown chevrons) ===== */
/* The 4 address dropdowns (billing/shipping country + state) are select2. Its default arrow is a
   tiny gray triangle. Hide it and draw a larger chevron, centered in the field. */
body.mv2.woocommerce-checkout .select2-selection__arrow b{
	display:none !important;
}
body.mv2.woocommerce-checkout .select2-selection__arrow{
	width:36px !important;
	right:0 !important;
	top:0 !important;
	height:100% !important;
	display:flex !important;
	align-items:center !important;
	justify-content:center !important;
	pointer-events:none;
}
body.mv2.woocommerce-checkout .select2-selection__arrow::after{
	content:"";
	display:block;
	width:11px;
	height:11px;
	border-right:2.5px solid #4a4550;
	border-bottom:2.5px solid #4a4550;
	transform:translateY(-3px) rotate(45deg);
}
/* ===== MV2 CHECKOUT ARROW — END ===== */

/* ===== MV2 CHECKOUT SHIPLABELS — START (short labels support + heading subtext) ===== */
/* The free-shipping card's label now reads "FREE – 2–6 Days", so drop its duplicate green FREE badge. */
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="free_shipping"]) .mv-coship__free{
	display:none !important;
}
/* Subtext under the "Shipping method" heading. */
body.mv2.woocommerce-checkout .mv-coship__h{
	margin-bottom:4px !important;
}
body.mv2.woocommerce-checkout .mv-coship__h::after{
	content:"Timeframes are estimated business days";
	display:block;
	font-size:13px;
	font-weight:400;
	color:#6b6470;
	margin-top:3px;
	letter-spacing:0;
	text-transform:none;
}
/* ===== MV2 CHECKOUT SHIPLABELS — END ===== */

/* ===== MV2 CHECKOUT HIDE NOTE+TRUST — START ===== */
/* Matt: remove the under-button note ("You won't be charged until you review your order" —
   misleading, there's no review page) and the SSL/guarantee/privacy trust block. */
body.mv2.woocommerce-checkout .mv-conote{
	display:none !important;
}
body.mv2.woocommerce-checkout .mv-cotrust{
	display:none !important;
}
/* ===== MV2 CHECKOUT HIDE NOTE+TRUST — END ===== */

/* ===== MV2 CHECKOUT TWEAKS3 — START (total black, coupon field+button, free badge back) ===== */
/* 1. Order total: black instead of purple. */
body.mv2.woocommerce-checkout tfoot .order-total .woocommerce-Price-amount,
body.mv2.woocommerce-checkout tfoot .order-total .woocommerce-Price-amount *{
	color:#231f20 !important;
}
/* 2. Coupon: always-visible input + Apply button, side by side (was a "click here" toggle). */
body.mv2.woocommerce-checkout .woocommerce-form-coupon-toggle{
	display:none !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon{
	display:flex !important;
	gap:10px !important;
	align-items:stretch !important;
	margin:0 0 20px 0 !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon .form-row-first{
	flex:1 1 auto !important;
	margin:0 !important;
	padding:0 !important;
	width:auto !important;
	max-width:none !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon .form-row-last{
	flex:0 0 auto !important;
	margin:0 !important;
	padding:0 !important;
	width:auto !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon input[name="coupon_code"]{
	width:100% !important;
	height:48px !important;
	margin:0 !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]{
	height:48px !important;
	white-space:nowrap !important;
	margin:0 !important;
}
/* 3. Free shipping card: bring back the green FREE badge (label is now "Economy – 2–6 Days"). */
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="free_shipping"]) .mv-coship__free{
	display:inline-flex !important;
}
/* ===== MV2 CHECKOUT TWEAKS3 — END ===== */

/* ===== MV2 CHECKOUT COUPON PANEL + SHIP ICONS — START ===== */
/* Matt: coupon becomes its own white panel (icon + "Have a promo code?") above Billing,
   with a purple ghost Apply button; plus warehouse icon for Local pickup + truck for Economy. */

/* --- Coupon panel (styles form.checkout_coupon in the cart-notice row, above billing) --- */
/* Single row: icon + "Have a promo code?" + input + Apply button, all inline (flex order). */
body.mv2.woocommerce-checkout form.checkout_coupon{
	display:flex !important;
	align-items:center !important;
	gap:14px !important;
	background:#fff !important;
	border:1px solid #E2E2E6 !important;
	border-radius:12px !important;
	padding:18px 24px !important;
	margin:0 0 24px 0 !important;
	max-width:827px !important;
	box-sizing:border-box !important;
	flex-wrap:nowrap !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon::before{
	content:"" !important;
	order:0 !important;
	flex:0 0 40px !important;
	width:40px;
	height:40px;
	border-radius:50%;
	background:#F5EDFC url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='22' height='22' fill='none' stroke='%238300E9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z'/><line x1='7' y1='7' x2='7.01' y2='7'/></svg>") no-repeat center / 22px 22px !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon::after{
	content:"Coupon Code" !important;
	order:1 !important;
	flex:0 0 auto !important;
	white-space:nowrap !important;
	font-size:17px !important;
	font-weight:600 !important;
	color:#231f20 !important;
	font-family:inherit !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon .form-row-first{
	order:2 !important;
	flex:1 1 auto !important;
	margin:0 !important;
	padding:0 !important;
	width:auto !important;
	max-width:none !important;
	display:block !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon .form-row-last{
	order:3 !important;
	flex:0 0 auto !important;
	margin:0 !important;
	padding:0 !important;
	width:auto !important;
	display:block !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon input[name="coupon_code"]{
	width:100% !important;
	height:48px !important;
	margin:0 !important;
	box-sizing:border-box !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]{
	height:48px !important;
	margin:0 !important;
	white-space:nowrap !important;
	background:#FFFFFF !important;
	color:var(--mv-purple-deep,#672B91) !important;
	-webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
	border:1px solid var(--mv-line,#E2E2E6) !important;
	border-radius:10px !important;
	font-family:'Barlow Condensed', Helvetica, Arial, sans-serif !important;
	font-size:14px !important;
	font-weight:600 !important;
	text-transform:uppercase !important;
	letter-spacing:1.12px !important;
	padding:0 20px !important;
	box-shadow:none !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]:hover{
	background:var(--mv-purple-deep,#672B91) !important;
	color:#fff !important;
	-webkit-text-fill-color:#fff !important;
	border-color:var(--mv-purple-deep,#672B91) !important;
}
body.mv2.woocommerce-checkout form.checkout_coupon .clear{
	display:none !important;
}

/* --- Shipping card icons: truck (Economy), warehouse (Local pickup); ~26px, matches UPS logo scale --- */
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="free_shipping"]) .mv-coship__ic{
	display:none !important;
}
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="free_shipping"]) .mv-coship__label::before{
	content:"" !important;
	display:inline-block !important;
	width:26px;
	height:26px;
	margin-right:4px;
	flex:0 0 26px;
	vertical-align:middle;
	background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='26' height='26' fill='none' stroke='%238300E9' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M1 3h15v13H1z'/><path d='M16 8h4l3 3v5h-7V8z'/><circle cx='5.5' cy='18.5' r='2.5'/><circle cx='18.5' cy='18.5' r='2.5'/></svg>") no-repeat center / 26px 26px !important;
}
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="local_pickup"]) .mv-coship__ic{
	display:none !important;
}
body.mv2.woocommerce-checkout .mv-coship__item:has(input[value^="local_pickup"]) .mv-coship__label::before{
	content:"" !important;
	display:inline-block !important;
	width:26px;
	height:26px;
	margin-right:4px;
	flex:0 0 26px;
	vertical-align:middle;
	background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='26' height='26' fill='none' stroke='%238300E9' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M3 21V8l9-5 9 5v13'/><path d='M3 21h18'/><path d='M7 21v-6h4v6'/><path d='M14 12h3v3h-3z'/></svg>") no-repeat center / 26px 26px !important;
}
/* ===== MV2 CHECKOUT COUPON PANEL + SHIP ICONS — END ===== */

/* ===== MV2 CHECKOUT HEADER ICONS + MOBILE COUPON — START ===== */
/* Matt: section-header icons — person for Billing, pin-house for Ship-to; all icon headers 44px.
   Plus a mobile fix so the promo-code row stacks instead of overflowing on phones. */

/* --- Header icons: enlarge all icon-circle headers to 44px --- */
body.mv2.woocommerce-checkout .woocommerce-billing-fields > h3::before,
body.mv2.woocommerce-checkout h3#ship-to-different-address::before,
body.mv2.woocommerce-checkout h3#order_review_heading::before{
	width:44px !important;
	height:44px !important;
	background-size:26px 26px !important;
	flex:0 0 44px !important;
}
/* Billing details -> person/user icon */
body.mv2.woocommerce-checkout .woocommerce-billing-fields > h3::before{
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='%238300E9' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='3.5'/><path d='M5.5 20a6.5 6.5 0 0 1 13 0'/></svg>") !important;
	background-repeat:no-repeat !important;
	background-position:center !important;
}
/* Ship to a different address -> location pin with house */
body.mv2.woocommerce-checkout h3#ship-to-different-address::before{
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='%238300E9' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2a7 7 0 0 0-7 7c0 4.5 7 13 7 13s7-8.5 7-13a7 7 0 0 0-7-7z'/><path d='M8.5 9.7L12 6.5l3.5 3.2'/><path d='M9.3 9v3.2h5.4V9'/></svg>") !important;
	background-repeat:no-repeat !important;
	background-position:center !important;
}

/* --- Mobile: coupon row stacks (icon + label on row 1, full-width input + button below) --- */
@media (max-width:781px){
	body.mv2.woocommerce-checkout form.checkout_coupon{
		flex-wrap:wrap !important;
		max-width:100% !important;
		row-gap:14px !important;
	}
	body.mv2.woocommerce-checkout form.checkout_coupon::after{
		flex:1 1 auto !important;
	}
	body.mv2.woocommerce-checkout form.checkout_coupon .form-row-first{
		flex:1 1 100% !important;
		order:2 !important;
	}
	body.mv2.woocommerce-checkout form.checkout_coupon .form-row-last{
		flex:1 1 100% !important;
		order:3 !important;
	}
	body.mv2.woocommerce-checkout form.checkout_coupon button[name="apply_coupon"]{
		width:100% !important;
	}
}
/* ===== MV2 CHECKOUT HEADER ICONS + MOBILE COUPON — END ===== */

/* ===== MV2 HEADER LOGO MOBILE — START ===== */
/* The .mv-head__logo SVG wordmark keeps its intrinsic ~362px width on mobile (the existing
   860px rule only caps its height), overflowing narrow screens. Cap its width so the header
   fits. Site-wide (all v2 pages share this header). */
@media (max-width:860px){
	body.mv2 .mv-head__logo svg{
		width:131px !important;
		max-width:131px !important;
		height:auto !important;
	}
	body.mv2 .mv-head__logo{
		max-width:131px !important;
		overflow:hidden !important;
	}
}
/* ===== MV2 HEADER LOGO MOBILE — END ===== */

/* ===== MV2 CHECKOUT MOBILE PANEL BLEED — START ===== */
/* The payment_info Divi module carries a grey background (set in the Divi builder) with square
   corners. Our rounded-panel styling for it is gated @media (min-width:1100px), so below that the
   grey square shows and its background bleeds past the shipping panel's rounded corner. Match the
   other panels on mobile: white, rounded, and clip children to the radius. */
@media (max-width:1099px){
	body.mv2.woocommerce-checkout .et_pb_wc_checkout_payment_info{
		background:#fff !important;
		border-radius:12px !important;
		overflow:hidden !important;
	}
}
/* ===== MV2 CHECKOUT MOBILE PANEL BLEED — END ===== */

/* ===== MV2 CHECKOUT FIVE FIXES — START ===== */
/* 1) recurring-total $ sign purple; 2) review-table border even on all sides;
   3) payment + place-order width match the summary; 4) ship-to header one row;
   5) coupon icon circle 40->44px to match the section-header circles. */

/* 1) Recurring total: make the $ currency symbol match the purple amount. */
body.mv2.woocommerce-checkout tr.recurring-total .woocommerce-Price-amount,
body.mv2.woocommerce-checkout .order-total.recurring-total .woocommerce-Price-amount,
body.mv2.woocommerce-checkout tr.recurring-total .woocommerce-Price-currencySymbol,
body.mv2.woocommerce-checkout .order-total.recurring-total .woocommerce-Price-currencySymbol{
	color:#8300E9 !important;
}

/* 2) Review table: border-collapse:separate so the 1px border + radius render evenly on all 4 sides. */
body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table{
	border:1px solid #E2E2E6 !important;
	border-collapse:separate !important;
	border-spacing:0 !important;
	border-radius:12px !important;
	overflow:hidden !important;
}

/* 3) Payment area + Place Order: remove #payment's 17px side padding so its contents span the
      full module width, matching the order summary above. */
body.mv2.woocommerce-checkout #payment{
	padding-left:0 !important;
	padding-right:0 !important;
}

/* 4) "Ship to a different address?" header: keep on one row (was wrapping to two on mobile
      once the 44px icon ate the horizontal space). nowrap always; on mobile drop the font a
      touch so the text fits comfortably beside the icon. */
body.mv2.woocommerce-checkout h3#ship-to-different-address{
	flex-wrap:nowrap !important;
	align-items:center !important;
	white-space:nowrap !important;
}
body.mv2.woocommerce-checkout h3#ship-to-different-address label{
	white-space:nowrap !important;
}
@media (max-width:781px){
	body.mv2.woocommerce-checkout h3#ship-to-different-address{
		font-size:17px !important;
	}
}

/* 5) Coupon icon circle 40->44px (icon 22->26px) to match the section-header circles. */
body.mv2.woocommerce-checkout form.checkout_coupon::before{
	width:44px !important;
	height:44px !important;
	flex:0 0 44px !important;
	background-size:26px 26px !important;
}
/* ===== MV2 CHECKOUT FIVE FIXES — END ===== */

/* ===== MV2 CART MOBILE FIX — START ===== */
/* At phone width the cart overflowed horizontally. Root cause: the .cart_totals grid sized its
   second track to content (~430px), so the empty .wc-proceed-to-checkout wrapper inherited a
   430px track and pushed past the screen. Fix the grid tracks to shrink, and constrain the table,
   the buy/interval/mode block, and the coupon row to the viewport. Gated to mobile; desktop
   (the 2-col totals grid) is untouched. */
@media (max-width:781px){
	/* the real culprit: force the totals grid tracks to shrink below content width */
	body.mv2.woocommerce-cart .cart_totals{
		grid-template-columns:minmax(0,1fr) !important;
	}
	body.mv2.woocommerce-cart .cart_totals > *{
		min-width:0 !important;
		max-width:100% !important;
	}
	body.mv2.woocommerce-cart .cart_totals .wc-proceed-to-checkout{
		width:100% !important;
	}

	/* table + form + totals fit the viewport */
	body.mv2.woocommerce-cart .shop_table.cart,
	body.mv2.woocommerce-cart form.woocommerce-cart-form,
	body.mv2.woocommerce-cart .cart_totals{
		max-width:100% !important;
		box-sizing:border-box !important;
	}
	body.mv2.woocommerce-cart table.shop_table_responsive,
	body.mv2.woocommerce-cart table.shop_table_responsive tbody,
	body.mv2.woocommerce-cart table.shop_table_responsive tr.cart_item{
		display:block !important;
		width:100% !important;
		max-width:100% !important;
	}

	/* the buy / interval / mode block stacks and fits */
	body.mv2.woocommerce-cart .mv-cbuy,
	body.mv2.woocommerce-cart .mv-cbuy__ivl,
	body.mv2.woocommerce-cart .mv-cbuy__modes,
	body.mv2.woocommerce-cart .mv-cprice{
		max-width:100% !important;
		box-sizing:border-box !important;
	}
	body.mv2.woocommerce-cart .mv-cbuy__ivl select{
		max-width:100% !important;
	}

	/* coupon row wraps (was nowrap flex overflowing) */
	body.mv2.woocommerce-cart .coupon{
		flex-wrap:wrap !important;
		max-width:100% !important;
	}
	body.mv2.woocommerce-cart .coupon #coupon_code{
		flex:1 1 100% !important;
		max-width:100% !important;
		box-sizing:border-box !important;
	}
	body.mv2.woocommerce-cart .coupon .mv-apply,
	body.mv2.woocommerce-cart .coupon button[name=apply_coupon]{
		flex:1 1 100% !important;
		width:100% !important;
		box-sizing:border-box !important;
	}

  /* MV2 CART PHONE FIX — line-item buy block full-width + shipping label separation (≤781) */
  body.mv2.woocommerce-cart form.woocommerce-cart-form td.product-delivery{ text-align:left !important; }
  body.mv2.woocommerce-cart .mv-cbuy{ width:100% !important; align-items:stretch !important; text-align:left !important; }
  body.mv2.woocommerce-cart .mv-cbuy__ivl{ width:100% !important; }
  body.mv2.woocommerce-cart .mv-cbuy__ivl select, body.mv2.woocommerce-cart select.mv-cbuy__sel{ width:100% !important; max-width:none !important; }
  body.mv2.woocommerce-cart .mv-cbuy__modes{ width:100% !important; display:flex !important; gap:8px !important; }
  body.mv2.woocommerce-cart .mv-cbuy__modes .mv-cbuy__mode, body.mv2.woocommerce-cart .mv-cbuy__modes button{ flex:1 1 0 !important; width:auto !important; text-align:center !important; }
  body.mv2.woocommerce-cart .cart_totals tr.shipping td::before,
  body.mv2.woocommerce-cart .cart_totals tr.recurring-total td::before,
  body.mv2.woocommerce-cart .cart_totals tr.recurring-totals td::before{ float:none !important; display:block !important; margin:0 0 6px 0 !important; }
  /* totals section labels left-aligned, not pushed right (Matt) */
  body.mv2.woocommerce-cart .cart_totals tr.shipping td::before,
  body.mv2.woocommerce-cart .cart_totals tr.recurring-total td::before,
  body.mv2.woocommerce-cart .cart_totals tr.recurring-totals td::before{ text-align:left !important; }
  /* shipping rate options left-aligned under the ZIP box, not pushed right (Matt) */
  body.mv2.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals ul#shipping_method,
  body.mv2.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals ul#shipping_method li,
  body.mv2.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals ul#shipping_method label{ text-align:left !important; }
  body.mv2.woocommerce-cart .cart_totals td::before{ margin-right:10px; }
}
/* ===== MV2 CART MOBILE FIX — END ===== */

/* ===== MV2 CART TABLET FIX — START ===== */
/* WooCommerce stops stacking the cart table at 768px, but the full 6-column table doesn't have
   room to render cleanly until ~980px — so in the 783-980px tablet band the table crammed all
   columns in and the product thumbnail collapsed to ~17px (looked broken / "phone-like"). Extend
   the stacked (one-block-per-row) table layout through the tablet band so it stays readable.
   SCOPED to form.woocommerce-cart-form ONLY — the .cart_totals table ALSO carries
   shop_table_responsive, and an unscoped td::before doubled every totals label. */
@media (min-width:783px) and (max-width:980px){
	body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive thead{
		display:none !important;
	}
	body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive tbody,
	body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive tr,
	body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td{
		display:block !important;
		width:100% !important;
		text-align:right !important;
	}
	body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive tr.cart_item{
		margin-bottom:16px !important;
	}
	body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td::before{
		content:attr(data-title) !important;
		float:left !important;
		font-weight:600 !important;
	}
	body.mv2.woocommerce-cart form.woocommerce-cart-form .cart_item .product-thumbnail{
		display:none !important;
	}
	body.mv2.woocommerce-cart form.woocommerce-cart-form .cart_item .product-name{
		text-align:left !important;
	}

  /* MV2 CART TABLET ROWFIX — label/value separation + compact remove ✕ (783–980) */
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive tr.cart_item{ position:relative !important; padding:16px 14px !important; }
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td::before{ margin-right:12px !important; }
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td.product-name::before,
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td.product-delivery::before{ float:none !important; display:block !important; margin:0 0 4px 0 !important; }
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td.product-name,
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td.product-delivery{ text-align:left !important; }
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td.product-remove{ position:absolute !important; top:10px !important; right:12px !important; padding:0 !important; margin:0 !important; width:auto !important; }
  body.mv2.woocommerce-cart form.woocommerce-cart-form table.shop_table_responsive td.product-remove::before{ content:none !important; }
}
/* ===== MV2 CART TABLET FIX — END ===== */

/* ===== MV2 CHECKOUT MOBILE PADDING — START ===== */
@media (max-width:781px){
  body.mv2.woocommerce-checkout .et_pb_section_0 .et_pb_row{ margin-left:15px !important; margin-right:15px !important; width:auto !important; }
  body.mv2.woocommerce-checkout .et_pb_section_0 .et_pb_module{ padding-left:0 !important; padding-right:0 !important; }
}
/* ===== MV2 CHECKOUT MOBILE PADDING — END ===== */

/* ===== MV2 FOOTER MOBILE PADDING — START (site-wide) ===== */
@media (max-width:781px){
  .et-l--footer .et_pb_row, [class*="tb_footer"] .et_pb_row{ margin-left:15px !important; margin-right:15px !important; width:auto !important; }
}
@media (min-width:782px) and (max-width:1024px){
  .et-l--footer .et_pb_row, [class*="tb_footer"] .et_pb_row{ margin-left:33px !important; margin-right:33px !important; width:auto !important; }
}
/* ===== MV2 FOOTER MOBILE PADDING — END ===== */
/* ===== MV2 CHECKOUT TABLET PADDING — START ===== */
@media (min-width:782px) and (max-width:1024px){
  body.mv2.woocommerce-checkout .et_pb_section_0 .et_pb_row{ margin-left:28px !important; margin-right:28px !important; width:auto !important; }
}
/* ===== MV2 CHECKOUT TABLET PADDING — END ===== */

/* ===== MV2 CHECKOUT COUPON MOBILE PAD — START ===== */
@media (max-width:781px){
  body.mv2.woocommerce-checkout form.checkout_coupon{ padding-left:16px !important; padding-right:16px !important; }
}
/* ===== MV2 CHECKOUT COUPON MOBILE PAD — END ===== */

/* ===== MV2 TOPBAR PHONE STACK — START ===== */
@media (max-width:600px){
  .mv-topbar__sep{ display:block; height:0; overflow:hidden; }
}
/* ===== MV2 TOPBAR PHONE STACK — END ===== */

/* ===== MV2 CHECKOUT YOURORDER MOBILE PAD — START ===== */
@media (max-width:781px){
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td,
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table th,
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name,
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total{ padding-left:12px !important; padding-right:12px !important; }
  body.mv2.woocommerce-checkout .mv-coship{ padding:14px !important; }
}
/* ===== MV2 CHECKOUT YOURORDER MOBILE PAD — END ===== */

/* ===== MV2 CHECKOUT TOTALS MOBILE — START ===== */
@media (max-width:781px){
  /* widen the value column so Total doesn't wrap; trim tfoot right padding */
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total{ width:140px !important; }
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td,
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th{ padding-right:10px !important; }
  /* first renewal date: full line of its own below the recurring total */
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total.recurring-total td,
  body.mv2.woocommerce-checkout .woocommerce-checkout-review-order-table tr.order-total.recurring-total th{ padding-bottom:24px !important; position:relative !important; }
  body.mv2.woocommerce-checkout .first-payment-date{
    position:absolute !important;
    right:10px !important; bottom:4px !important; top:auto !important; left:auto !important;
    white-space:nowrap !important; text-align:right !important; width:auto !important; margin:0 !important;
  }
}
/* ===== MV2 CHECKOUT TOTALS MOBILE — END ===== */

/* ===== MV2 CHECKOUT CC ROW MOBILE — START ===== */
@media (max-width:781px){
  /* CC row: flex ONLY on the authnet method (radio+label+brand imgs) — NOT all payment methods */
  body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(#payment_method_authnet){ display:flex !important; flex-wrap:nowrap !important; align-items:flex-start !important; }
  body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(#payment_method_authnet) > input[type=radio]{ margin-top:4px !important; flex:0 0 auto !important; }
  body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(#payment_method_authnet) label[for="payment_method_authnet"]{
    display:flex !important; flex-wrap:wrap !important; align-items:flex-start !important; row-gap:8px !important;
    flex:1 1 auto !important; margin-left:8px !important;
  }
  body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(#payment_method_authnet) label[for="payment_method_authnet"] img{ order:2 !important; margin:0 6px 0 0 !important; vertical-align:middle !important; flex:0 0 auto !important; }
  body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method:has(#payment_method_authnet) label[for="payment_method_authnet"]::after{ content:"" !important; order:1 !important; flex-basis:100% !important; width:100% !important; height:0 !important; }
  /* any payment method DESCRIPTION (e.g. cash-pickup address) stacks full-width below, never to the side */
  body.mv2.woocommerce-checkout #payment ul.wc_payment_methods li.wc_payment_method .payment_box{ flex-basis:100% !important; width:100% !important; }
}
/* ===== MV2 CHECKOUT CC ROW MOBILE — END ===== */

/* ===== MV2 HERO MOBILE FIX — START ===== */
/* Hero feature list — base styling (all widths) so desktop isn't a bulleted list. */
.mv-hero__features{ list-style:none; margin:28px 0 0; padding:0; display:flex; flex-direction:column; gap:16px; }
.mv-hero__features li{ list-style:none; }
.mv-hf{ display:flex; align-items:center; gap:12px; }
.mv-hf__icon{ color:#7CFC00; flex:0 0 auto; display:flex; }
.mv-hf__txt{ display:flex; flex-direction:column; }
.mv-hf__t{ color:#fff; font-weight:700; font-size:15px; line-height:1.2; }
.mv-hf__s{ color:rgba(255,255,255,.72); font-size:13px; }
/* Phone + tablet: copy LEFT, bottle CENTERED in the right half with the glow behind it,
   3-item feature list under the CTA (vertical on phone, divided row on tablet). Matches Matt's mockup. */
@media (max-width:980px){
  .mv-hero{ grid-template-columns:1fr !important; position:relative !important; }
  .mv-hero__copy{
    grid-column:1 !important; order:0 !important;
    max-width:none !important; width:60% !important; margin:0 !important;
    text-align:left !important; padding:32px 0 32px 24px !important;
    position:relative !important; z-index:3 !important;
  }
  .mv-hero__sub{ margin-left:0 !important; margin-right:0 !important; }
  .mv-hero__stage{
    position:absolute !important; order:0 !important;
    top:0 !important; bottom:0 !important; right:0 !important; left:auto !important;
    width:44% !important; justify-content:center !important; align-items:center !important;
    padding-right:0 !important; z-index:2 !important;
  }
  .mv-hero__bottle{
    position:relative !important; max-height:82% !important; height:auto !important; width:auto !important; margin:0 !important;
  }
}
@media (max-width:599px){
  /* phone glow blooms behind the bottle (right side), not the copy */
  .mv-hero__glow{ background:radial-gradient(30% 30% at 82% 44%, rgba(168,72,255,.42), rgba(150,20,245,0) 72%), radial-gradient(56% 48% at 82% 46%, rgba(131,0,233,.82), rgba(131,0,233,.32) 48%, rgba(131,0,233,0) 76%) !important; }
  /* on the narrow phone the bottle sits toward the right so it clears the left-column text */
  .mv-hero__stage{ justify-content:flex-end !important; right:-6% !important; width:46% !important; }
  .mv-hero__bottle{ max-height:78% !important; }
  /* HERO POLISH 2026-07-30: the two feature items go on phone - the narrow column made them
     compete with the headline. The drop shrinks 5%; note 8vw is INACTIVE at phone
     widths (31px at 390), so the 104px FLOOR is what had to move, not the vw. */
  .mv-hero__features{ display:none !important; }
}
@media (min-width:600px) and (max-width:980px){
  .mv-hero__copy{ width:50% !important; padding:48px 24px 48px 40px !important; }
  .mv-hero__stage{ width:50% !important; right:0 !important; left:auto !important; justify-content:center !important; align-items:center !important; }
  .mv-hero__bottle{ max-height:88% !important; }
  /* glow behind the centered bottle */
  .mv-hero__glow{ background:radial-gradient(26% 36% at 75% 48%, rgba(168,72,255,.42), rgba(150,20,245,0) 72%), radial-gradient(46% 58% at 75% 50%, rgba(131,0,233,.82), rgba(131,0,233,.34) 46%, rgba(131,0,233,0) 74%) !important; }
  /* features fill the left column as a divided row; no reserved title gap (subs cascade naturally) */
  .mv-hero__features{
    /* HERO POLISH 2026-07-30: was flex with flex:1 1 0, i.e. equal columns regardless of content,
       which squeezed "Plant-Based Glucosamine" onto two lines and pushed the divider
       hard against it. Content-sized columns, same as desktop. */
    display:grid !important; grid-template-columns:max-content max-content !important;
    justify-content:start !important; column-gap:22px !important; row-gap:0 !important;
    /* was 32; with the sub's own 24px below it that made a 56px trench. */
    margin-top:6px !important;
    width:100% !important; max-width:none !important;
  }
  .mv-hf{
    /* icon BESIDE the text and vertically centred on the two-line block -
       column put it above, 37px off centre. */
    flex-direction:row !important; align-items:center !important;
    gap:10px !important; padding:0 !important; border-left:0 !important;
  }
  .mv-hf + .mv-hf{ border-left:1px solid rgba(255,255,255,.18) !important;
    padding-left:22px !important; }
  .mv-hf__t{ font-size:14px !important; line-height:1.25 !important; white-space:nowrap !important; }
  .mv-hf__s{ font-size:12px !important; white-space:nowrap !important; }
}
/* ===== MV2 HERO MOBILE FIX — END ===== */

/* ===== MV2 HERO BOTTLE SWAP — START ===== */
/* Phone shows the plain tall bottle (fits the narrow right column, with right-side padding);
   tablet + desktop show the richer bottlefruit composition (needs the wider space). */
.mv-hero__bottle--fruit{ display:none; }
@media (max-width:599px){
  .mv-hero__stage{ right:0 !important; width:40% !important; padding-right:14px !important; justify-content:flex-end !important; }
  /* ⚠⚠ WIDTH-DRIVEN, NOT HEIGHT-DRIVEN. With only a max-height the rendered
   WIDTH is effectively constant (the hero height is content-driven and barely
   moves) while the TEXT edge moves with viewport width - so a size tuned at
   390 OVERLAPPED the text at 360 and left a 27px void at 430. All three
   measured.
   The stage is the containing block and its LEFT edge IS the copy's right
   edge. ⚠ 100% RESOLVES ~12px NARROWER than the stage's visible span (the
   stage carries padding), and flex-end pushes ALL remaining slack to the LEFT
   - so subtracting 26 gave 25 left / 13 right. Subtracting 14 splits it evenly
   at 13/13, which is the padding Matt asked to match. MEASURE, DO NOT ASSUME
   100% EQUALS THE VISIBLE STAGE WIDTH.
   ⚠ max-height is only a guard for a short hero and must stay high enough not
   to bite: if it clamped the height while the width stayed set, object-fit:
   fill would DISTORT the bottle. */
.mv-hero__bottle--plain{ max-height:95% !important; ;width:calc(100% - 14px) !important;height:auto !important}
}
@media (min-width:600px){
  .mv-hero__bottle--fruit{ display:block !important; }
  .mv-hero__bottle--plain{ display:none !important; }
}
/* ===== MV2 HERO BOTTLE SWAP — END ===== */

/* ===== MV2 HERO FRUIT DESKTOP — START ===== */
/* Desktop shows the WHOLE bottlefruit composition, fit inside the left half (where the bottle-stack
   was), copy stays on the right. A 2026-07-30 flip to copy-left was tried and
   REVERTED the same day at Matt's request - image left / copy right is the
   desktop design. The glow rides with the stage (26%); move both or neither. object-fit:contain so nothing is cropped — show off all the fruit. */
@media (min-width:981px){
  .mv-hero__stage{
    position:absolute !important; inset:0 auto 0 0 !important; left:0 !important; right:auto !important;
    width:50% !important; height:100% !important;
    display:flex !important; justify-content:center !important; align-items:center !important;
    margin:0 !important; padding:40px !important;
  }
  .mv-hero__bottle--fruit{
    position:relative !important;
    max-height:97% !important; max-width:100% !important; width:auto !important; height:auto !important;
    margin:0 !important; object-fit:contain !important; transform:none !important; filter:none !important;
  }
  .mv-hero__bottle--b1, .mv-hero__bottle--b2, .mv-hero__bottle--b3, .mv-hero__bottle--plain{ display:none !important; }
  .mv-hero__glow{ background:radial-gradient(26% 36% at 26% 48%, rgba(168,72,255,.42), rgba(150,20,245,0) 72%), radial-gradient(46% 60% at 26% 50%, rgba(131,0,233,.82), rgba(131,0,233,.34) 46%, rgba(131,0,233,0) 74%) !important; }
}
/* ===== MV2 HERO FRUIT DESKTOP — END ===== */

/* ===== MV2 HEADER GLASS — START ===== */
/* Subtle glassmorphism once the page scrolls: the .mv-head--scrolled class (added by mv2-cart.js)
   makes the sticky header a translucent frosted panel. 0.72 white keeps the dark text legible. */
.mv-head{ transition: background-color .28s ease, box-shadow .28s ease, border-color .28s ease; }
.mv-head.mv-head--scrolled{
  background-color: rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter: blur(12px) saturate(140%) !important;
  backdrop-filter: blur(12px) saturate(140%) !important;
  box-shadow: 0 6px 24px rgba(35,31,32,.12) !important;
  border-bottom: 1px solid rgba(255,255,255,.55) !important;
}
/* ===== MV2 HEADER GLASS — END ===== */

/* ===== MV2 ACCOUNT — START (login / register facelift) ===== */
/* Scoped to body.mv2.woocommerce-account. Wraps Woo's login/register forms in the tabbed
   mockup layout. Forms are restyled in place — never reparented. */

/* hide Divi's default page title / breadcrumb noise around the account content */
body.mv2.woocommerce-account .et_pb_section .entry-title{ display:none; }

/* the split shell */
body.mv2.woocommerce-account .mv-auth{
  display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch;
  max-width:1180px; margin:0 auto; border-radius:20px; overflow:hidden;
  box-shadow:0 24px 60px rgba(35,31,32,.14); background:#1B0733;
}

/* LEFT visual panel */
body.mv2 .mv-auth__aside{
  position:relative; padding:56px 48px; display:flex; flex-direction:column; justify-content:center;
  background:linear-gradient(150deg,#2A0A4E 0%,#1B0733 60%); overflow:hidden; min-height:660px;
}
body.mv2 .mv-auth__glow{
  position:absolute; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(30% 40% at 22% 42%, rgba(168,72,255,.42), rgba(150,20,245,0) 70%),
    radial-gradient(52% 60% at 20% 46%, rgba(131,0,233,.72), rgba(131,0,233,.18) 48%, transparent 74%);
}
body.mv2 .mv-auth__bottle{
  position:absolute; left:-4%; top:50%; transform:translateY(-50%);
  height:104%; width:auto; z-index:1; filter:drop-shadow(0 30px 40px rgba(0,0,0,.4));
}
body.mv2 .mv-auth__intro{ position:relative; z-index:2; margin-left:auto; width:56%; color:#fff; text-align:left; }
body.mv2 .mv-auth__eyebrow{
  font-family:'Barlow Condensed',sans-serif; text-transform:uppercase; letter-spacing:.14em;
  color:#7CFC00; font-size:13px; font-weight:600; margin:0 0 10px;
}
body.mv2 .mv-auth__title{
  font-family:'Barlow Condensed',sans-serif; color:#fff !important; font-size:52px; line-height:1.02; margin:0 0 16px; font-weight:600;
}
body.mv2 .mv-auth__sub{ color:rgba(255,255,255,.82); font-size:17px; line-height:1.5; margin:0 0 32px; }
body.mv2 .mv-auth__features{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:20px; }
body.mv2 .mv-auth__features li{ list-style:none; }
body.mv2 .mv-af{ display:flex; align-items:flex-start; gap:14px; }
body.mv2 .mv-af__icon{ color:#7CFC00; flex:0 0 auto; display:flex; margin-top:2px; }
body.mv2 .mv-af__txt{ display:flex; flex-direction:column; }
body.mv2 .mv-af__t{ color:#fff; font-weight:700; font-size:16px; line-height:1.2; }
body.mv2 .mv-af__s{ color:rgba(255,255,255,.66); font-size:13.5px; line-height:1.35; margin-top:2px; }

/* RIGHT card */
body.mv2 .mv-auth__card{ background:#fff; padding:44px 48px; display:flex; flex-direction:column; }
body.mv2 .mv-auth__tabs{ display:flex; gap:8px; border-bottom:1px solid #E2E2E6; margin-bottom:28px; }
body.mv2 .mv-auth__tab{
  flex:1; background:none; border:none; cursor:pointer; padding:0 0 14px; margin-bottom:-1px;
  font-family:'Barlow Condensed',sans-serif; font-size:18px; font-weight:600; color:#9A93A6;
  border-bottom:2px solid transparent; transition:color .18s, border-color .18s;
}
body.mv2 .mv-auth__tab.is-active{ color:#8300E9; border-bottom-color:#8300E9; }

/* the two Woo columns share the card body; toggle by wrapper class */
body.mv2 .mv-auth__body .woocommerce-notices-wrapper:empty{ display:none; }
body.mv2 .mv-auth__body .u-columns{ display:block; margin:0; width:100%; }
body.mv2 .mv-auth__body .u-column1,
body.mv2 .mv-auth__body .u-column2{ width:100%; float:none; margin:0; padding:0; }
body.mv2 .mv-auth--login .u-column2{ display:none; }
body.mv2 .mv-auth--register .u-column1{ display:none; }
body.mv2 .mv-auth__body .u-column1 > h2,
body.mv2 .mv-auth__body .u-column2 > h2{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* fields */
body.mv2 .mv-auth__body .woocommerce-form-row,
body.mv2 .mv-auth__body form .form-row{ margin:0 0 18px; padding:0; }
body.mv2 .mv-auth__body label{ display:block; font-size:14px; font-weight:600; color:#231F20; margin:0 0 7px; }
body.mv2 .mv-auth__body input[type=text],
body.mv2 .mv-auth__body input[type=email],
body.mv2 .mv-auth__body input[type=password]{
  width:100%; height:50px; padding:0 44px 0 44px; border:1px solid #E2E2E6; border-radius:9px;
  font-size:16px; color:#231F20; background:#fff; box-sizing:border-box;
}
body.mv2 .mv-auth__body input:focus{ outline:none; border-color:#8300E9; box-shadow:0 0 0 3px rgba(131,0,233,.12); }
body.mv2 .mv-auth__body input[type=text],
body.mv2 .mv-auth__body input[type=email]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A93A6' stroke-width='1.6'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:14px center; background-size:20px 20px;
}
body.mv2 .mv-auth__body input[type=password]{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239A93A6' stroke-width='1.6'%3E%3Crect x='4' y='11' width='16' height='9' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:14px center; background-size:20px 20px;
}
body.mv2 .mv-auth__body .password-input{ display:block; position:relative; width:100%; }
body.mv2 .mv-auth__body .password-input input{ width:100%; }
body.mv2 .mv-auth__body .show-password-input{
  position:absolute; right:14px; top:50%; transform:translateY(-50%);
  width:22px; height:22px; cursor:pointer; color:#9A93A6;
}

body.mv2 .mv-auth__body button[type=submit]{
  width:100%; height:52px; background:#8300E9; color:#fff; border:none; border-radius:10px;
  font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:600; letter-spacing:.02em; cursor:pointer;
  margin:0; transition:background .18s;
}
body.mv2 .mv-auth__body button[type=submit]:hover{ background:#6E00C4; }

body.mv2 .woocommerce-form-login .form-row{ display:flex; flex-wrap:wrap; align-items:center; margin-bottom:16px; row-gap:16px; }
body.mv2 .mv-auth__body .woocommerce-form-login button[type=submit],
body.mv2 .mv-auth__body .woocommerce-form-register button[type=submit]{ display:block; width:100%; flex:0 0 100%; overflow:visible; }
body.mv2 .woocommerce-form-login .form-row label.woocommerce-form__label-for-checkbox{
  font-weight:400; font-size:14px; color:#5A5566; margin:0; display:flex; align-items:center; gap:8px; flex:1 1 auto;
}
body.mv2 .woocommerce-form-login .form-row button[type=submit]{ flex:1 1 100%; }
body.mv2 .woocommerce-form-login .woocommerce-LostPassword{ text-align:right; font-size:14px; margin:0; height:0; overflow:visible; }
body.mv2 .woocommerce-form-login .woocommerce-LostPassword{ margin:8px 0 0; text-align:left; }
body.mv2 .woocommerce-form-login .woocommerce-LostPassword a{
  color:#8300E9; font-weight:600; text-decoration:none;
}
body.mv2 .woocommerce-form-login #rememberme{ width:18px; height:18px; accent-color:#8300E9; margin:0; }

body.mv2 .mv-auth__or{ display:flex; align-items:center; text-align:center; margin:24px 0 20px; color:#9A93A6; }
body.mv2 .mv-auth__or::before,
body.mv2 .mv-auth__or::after{ content:''; flex:1; height:1px; background:#E2E2E6; }
body.mv2 .mv-auth__or span{ padding:0 16px; font-size:13px; font-weight:600; letter-spacing:.06em; }

body.mv2 .mv-auth__new{ text-align:center; }
body.mv2 .mv-auth__new-t{ font-weight:700; color:#231F20; font-size:16px; margin:0 0 4px; }
body.mv2 .mv-auth__new-s{ color:#5A5566; font-size:14px; margin:0 0 16px; }
body.mv2 .mv-auth__ghost{
  width:100%; height:52px; background:#fff; color:#8300E9; border:1.5px solid #8300E9; border-radius:10px;
  font-family:'Barlow Condensed',sans-serif; font-size:17px; font-weight:600; letter-spacing:.02em; cursor:pointer;
  -webkit-text-fill-color:#8300E9; transition:background .18s, color .18s;
}
body.mv2 .mv-auth__ghost:hover{ background:#8300E9; color:#fff; -webkit-text-fill-color:#fff; }

body.mv2.woocommerce-account .mv-auth__notice{
  max-width:1180px; margin:24px auto 0; display:flex; align-items:center; gap:20px;
  background:#F3EEFB; border-radius:16px; padding:24px 28px;
}
body.mv2 .mv-auth__notice-icon{
  flex:0 0 auto; width:56px; height:56px; border-radius:50%; background:#E7DAF7; color:#8300E9;
  display:flex; align-items:center; justify-content:center;
}
body.mv2 .mv-auth__notice-txt{ display:flex; flex-direction:column; }
body.mv2 .mv-auth__notice-t{ font-weight:700; color:#231F20; font-size:17px; margin-bottom:4px; }
body.mv2 .mv-auth__notice-s{ color:#5A5566; font-size:15px; line-height:1.5; }
body.mv2 .mv-auth__notice-link{ display:inline-block; margin-top:4px; color:#8300E9; font-weight:600; text-decoration:underline; white-space:nowrap; }
body.mv2 .mv-auth__notice-link:hover{ color:#6E00C4; }
/* remove the pre-existing duplicate Divi whitelist notice above the login card (superseded by the styled Stay Connected notice) */
body.woocommerce-account .et-l--post .et_pb_text_1{ display:none !important; }

@media (max-width:900px){
  body.mv2.woocommerce-account .mv-auth{ grid-template-columns:1fr; }
  body.mv2 .mv-auth__aside{ min-height:0; padding:40px 32px 32px; }
  body.mv2 .mv-auth__bottle{ display:none; }
  body.mv2 .mv-auth__intro{ width:100%; margin:0; text-align:center; }
  body.mv2 .mv-auth__sub{ margin-left:auto; margin-right:auto; max-width:420px; }
  body.mv2 .mv-auth__features{ align-items:center; }
  body.mv2 .mv-af{ width:100%; max-width:360px; }
  body.mv2 .mv-auth__card{ padding:36px 28px; }
}
@media (max-width:520px){
  body.mv2 .mv-auth__title{ font-size:40px; }
  body.mv2 .mv-auth__card{ padding:28px 20px; }
  body.mv2 .mv-auth__aside{ padding:32px 22px 26px; }
  body.mv2.woocommerce-account .mv-auth__notice{ flex-direction:row; padding:20px; gap:14px; align-items:flex-start; }
  body.mv2 .mv-auth__notice-icon{ width:44px; height:44px; }
}
/* === MV2 ACCOUNT ROW WIDTH FIX (Divi .et_pb_row defaults to 80% — too narrow for the auth card on phone/tablet) === */
@media (max-width:767px){
	body.mv2.woocommerce-account .et_pb_row{ width:auto !important; max-width:none !important; margin-left:16px !important; margin-right:16px !important; padding-left:0 !important; padding-right:0 !important; }
}
@media (min-width:768px) and (max-width:980px){
	body.mv2.woocommerce-account .et_pb_row{ width:90% !important; max-width:640px !important; }
}

/* ===== MV2 ACCOUNT — END ===== */

/* >>> MV2 DASHBOARD CSS START >>> */

/* ========================================================================
   MV2 ACCOUNT DASHBOARD (logged-in) — matches the 3-view mockup.
   Scoped to body.mv2.woocommerce-account. Uses the v2 purple system.
   ======================================================================== */

/* layout: the whole .woocommerce becomes a nav-rail + content grid */
body.mv2.woocommerce-account.logged-in .woocommerce{
	display:grid; grid-template-columns:250px 1fr; column-gap:28px; row-gap:6px;
	max-width:1180px; margin:32px auto; align-items:start;
}
/* WooCommerce clearfix ::before/::after become stray grid items — kill them so the 2 tracks line up */
body.mv2.woocommerce-account.logged-in .woocommerce::before,
body.mv2.woocommerce-account.logged-in .woocommerce::after{ display:none; }
/* Woo defaults width:30%/68% + float on nav/content override the grid tracks — reset so items fill their columns */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content{ width:auto !important; float:none !important; margin:0 !important; }
/* hide WooCommerce's default dashboard greeting paragraphs (our hero replaces them) */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > p{ display:none !important; }
/* kill leftover list bullets on the nav items */
body.mv2 .woocommerce-MyAccount-navigation ul,
body.mv2 .woocommerce-MyAccount-navigation li{ list-style:none !important; }
body.mv2 .woocommerce-MyAccount-navigation li::marker{ content:'' !important; }
body.mv2 .woocommerce-MyAccount-navigation li::before{ display:none !important; }
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content{ min-width:0; }

/* the dashboard mount spans nothing special; cards live inside content */
body.mv2 .mv-dash{ display:flex; flex-direction:column; gap:22px; }

/* ---- HERO ------------------------------------------------------------- */
body.mv2 .mv-dash__hero{
	position:relative; overflow:hidden; border-radius:18px;
	background:linear-gradient(120deg,#2A0A4E 0%,#3D1173 46%,#1B0733 100%);
	color:#fff; padding:44px 40px; display:flex; align-items:center; gap:26px;
	min-height:190px;
}
body.mv2 .mv-dash__hero::after{ /* berry glow on the right */
	content:''; position:absolute; right:-60px; top:50%; transform:translateY(-50%);
	width:340px; height:340px; border-radius:50%;
	background:radial-gradient(circle,rgba(131,0,233,.55) 0%,rgba(131,0,233,0) 68%);
	pointer-events:none;
}
body.mv2 .mv-dash__hero-wings{ flex:0 0 auto; width:96px; color:#B06BF2; position:relative; z-index:1; }
body.mv2 .mv-dash__hero-wings svg{ width:100%; height:auto; display:block; }
body.mv2 .mv-dash__hero-txt{ position:relative; z-index:1; }
body.mv2 .mv-dash__hero-eyebrow{ display:block; font-size:15px; color:#D9C7F2; margin-bottom:2px; }
body.mv2 .mv-dash__hero-name{
	font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:42px; line-height:1.04;
	margin:0 0 12px; color:#fff; letter-spacing:.5px;
}
body.mv2 .mv-dash__hero-sub{ margin:0; max-width:560px; font-size:15px; line-height:1.5; color:#E6DBF5; }

/* ---- STAT CARDS ------------------------------------------------------- */
body.mv2 .mv-dash__stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
body.mv2 .mv-dash__card{
	background:#fff; border:1px solid #ECE7F3; border-radius:14px;
	box-shadow:0 1px 3px rgba(24,10,48,.05);
}
body.mv2 .mv-dash__stat{ padding:22px 22px 18px; display:flex; flex-direction:column; }
body.mv2 .mv-dash__stat-icon{
	width:44px; height:44px; border-radius:11px; display:inline-flex; align-items:center; justify-content:center;
	background:#8300E9; color:#fff; margin-bottom:14px;
}
body.mv2 .mv-dash__stat-icon svg{ width:22px; height:22px; }
body.mv2 .mv-dash__stat--sub .mv-dash__stat-icon{ background:#18A957; }
body.mv2 .mv-dash__stat--address .mv-dash__stat-icon{ background:#2B7FFF; }
body.mv2 .mv-dash__stat-label{ font-size:14px; color:#6A6478; }
body.mv2 .mv-dash__stat-value{ font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:34px; line-height:1.1; color:#1C1526; margin:2px 0 10px; }
body.mv2 .mv-dash__stat-link{ font-size:13.5px; font-weight:600; color:#8300E9; text-decoration:none; margin-top:auto; }
body.mv2 .mv-dash__stat-link:hover{ color:#6E00C4; }

/* ---- card head (shared) ---------------------------------------------- */
body.mv2 .mv-dash__card-head{ display:flex; align-items:center; justify-content:space-between; padding:20px 22px 0; }
body.mv2 .mv-dash__card-head h2{ font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:19px; margin:0; color:#1C1526; }
body.mv2 .mv-dash__viewall{ font-size:13.5px; font-weight:600; color:#8300E9; text-decoration:none; white-space:nowrap; }
body.mv2 .mv-dash__viewall:hover{ color:#6E00C4; }
body.mv2 .mv-dash__empty{ padding:18px 22px 22px; color:#6A6478; font-size:14px; }

/* ---- RECENT ORDERS ---------------------------------------------------- */
body.mv2 .mv-dash__orders{ padding:8px 12px 14px; display:flex; flex-direction:column; }
body.mv2 .mv-dash__order{
	display:flex; align-items:center; gap:14px; padding:12px 10px; border-radius:10px;
	text-decoration:none; color:inherit; transition:background .12s;
}
body.mv2 .mv-dash__order:hover{ background:#F7F4FC; }
body.mv2 .mv-dash__order + .mv-dash__order{ border-top:1px solid #F0ECF6; }
body.mv2 .mv-dash__order-thumb img{ width:52px; height:52px; border-radius:8px; object-fit:cover; display:block; background:#F3EEFB; }
body.mv2 .mv-dash__order-main{ display:flex; flex-direction:column; gap:3px; flex:1 1 auto; min-width:0; }
body.mv2 .mv-dash__order-id{ font-weight:700; font-size:14.5px; color:#1C1526; }
body.mv2 .mv-dash__order-date{ font-size:13px; color:#8A8398; }
body.mv2 .mv-dash__order-right{ display:flex; flex-direction:column; align-items:flex-end; gap:3px; text-align:right; }
body.mv2 .mv-dash__order-total{ font-weight:700; font-size:14.5px; color:#1C1526; }
body.mv2 .mv-dash__order-count{ font-size:12.5px; color:#8A8398; }
body.mv2 .mv-dash__order-chev{ color:#C9C0DA; font-size:22px; line-height:1; padding-left:2px; }

/* status pills */
body.mv2 .mv-dash__pill{ display:inline-block; font-size:11.5px; font-weight:600; padding:3px 10px; border-radius:999px; margin-top:2px; }
body.mv2 .mv-dash__pill--completed,
body.mv2 .mv-dash__pill--active{ background:#E4F7EC; color:#18804A; }
body.mv2 .mv-dash__pill--processing,
body.mv2 .mv-dash__pill--on-hold{ background:#FFF3DB; color:#9A6B00; }
body.mv2 .mv-dash__pill--pending{ background:#EDE9F5; color:#5B5470; }
body.mv2 .mv-dash__pill--cancelled,
body.mv2 .mv-dash__pill--failed{ background:#FBE6E6; color:#B23131; }

/* ---- BOTTOM ROW: subscription overview + shortcuts -------------------- */
body.mv2 .mv-dash__bottom{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
body.mv2 .mv-dash__subov-body{ display:flex; gap:14px; padding:16px 22px 6px; }
body.mv2 .mv-dash__subov-thumb img{ width:72px; height:72px; border-radius:10px; object-fit:cover; display:block; background:#F3EEFB; }
body.mv2 .mv-dash__subov-info{ display:flex; flex-direction:column; gap:4px; }
body.mv2 .mv-dash__subov-name{ font-weight:700; font-size:15px; color:#1C1526; }
body.mv2 .mv-dash__subov-meta{ font-size:13px; color:#8A8398; }
body.mv2 .mv-dash__subov-price{ font-size:14px; color:#4A4458; }
body.mv2 .mv-dash__subov-price .amount{ font-weight:700; color:#1C1526; }
body.mv2 .mv-dash__btn{
	display:inline-block; margin:14px 22px 20px; padding:11px 20px; border-radius:9px;
	font-weight:600; font-size:14px; text-decoration:none; text-align:center;
}
body.mv2 .mv-dash__btn--ghost{ border:1.5px solid #8300E9; color:#8300E9; background:#fff; }
body.mv2 .mv-dash__btn--ghost:hover{ background:#8300E9; color:#fff; }

/* shortcuts */
body.mv2 .mv-dash__shortcut{ display:flex; align-items:center; gap:14px; padding:14px 22px; text-decoration:none; color:inherit; }
body.mv2 .mv-dash__shortcut + .mv-dash__shortcut{ border-top:1px solid #F0ECF6; }
body.mv2 .mv-dash__shortcut:hover{ background:#F7F4FC; }
body.mv2 .mv-dash__shortcut-icon{ width:40px; height:40px; border-radius:10px; background:#F3EEFB; color:#8300E9; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; }
body.mv2 .mv-dash__shortcut-icon svg{ width:20px; height:20px; }
body.mv2 .mv-dash__shortcut-txt{ display:flex; flex-direction:column; gap:2px; flex:1 1 auto; }
body.mv2 .mv-dash__shortcut-t{ font-weight:600; font-size:14.5px; color:#1C1526; }
body.mv2 .mv-dash__shortcut-s{ font-size:12.5px; color:#8A8398; }
body.mv2 .mv-dash__shortcut-chev{ color:#C9C0DA; font-size:22px; }

/* ---- NAV RAIL (restyle Woo's .woocommerce-MyAccount-navigation) ------- */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation{
	background:#fff; border:1px solid #ECE7F3; border-radius:14px; padding:10px;
	box-shadow:0 1px 3px rgba(24,10,48,.05); font-family:inherit;
}
body.mv2 .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; }
body.mv2 .woocommerce-MyAccount-navigation li{ margin:0; }
body.mv2 .woocommerce-MyAccount-navigation li a{
	display:flex; align-items:center; gap:11px; padding:9px 14px; margin:2px 0; border-radius:9px;
	color:#4A4458; font-size:14.5px; font-weight:500; text-decoration:none; transition:background .12s,color .12s;
}
body.mv2 .woocommerce-MyAccount-navigation li a:hover{ background:#F7F4FC; color:#8300E9; }
body.mv2 .woocommerce-MyAccount-navigation li.is-active a{ background:#F3EEFB; color:#8300E9; font-weight:600; }
/* little leading icon dot via ::before using currentColor square is too plain — use a subtle marker */
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a{ color:#B23131; }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover{ background:#FBE6E6; color:#B23131; }

/* ---- MOBILE "Need help?" card (rendered only on small screens) -------- */
body.mv2 .mv-dash__help{ display:none; }

/* ---- RESPONSIVE ------------------------------------------------------- */
/* ---- "my Monavie." rail heading (replaces the Divi page-title module) ---- */
body.mv2.woocommerce-account.logged-in .et_pb_text_0{ display:none !important; }
body.mv2.woocommerce-account.logged-in .et_pb_row_0{ display:none !important; }
body.mv2.woocommerce-account.logged-in .woocommerce{ margin-top:0 !important; }
body.mv2.woocommerce-account.logged-in .et_pb_text_inner > p:empty{ display:none !important; }
body.mv2 .mv-dash__railtitle{
	font-family:'Barlow Condensed',sans-serif; font-weight:500; font-size:22px; color:#1C1526;
	padding:0 6px 6px; letter-spacing:.3px;
}
body.mv2 .mv-dash__railtitle strong{ font-weight:700; color:#8300E9; }

/* place the rail heading above the nav in column 1; content fills column 2 across both rows */
body.mv2.woocommerce-account.logged-in .woocommerce{ grid-template-rows:auto 1fr; }
body.mv2.woocommerce-account.logged-in .mv-dash__railtitle{ grid-column:1; grid-row:1; }
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation{ grid-column:1; grid-row:2; align-self:start; }
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content{ grid-column:2; grid-row:1 / span 2; }

/* ---- MV2 ACCOUNT PANEL PADDING — equalize (Divi row defaults 36/95) ---- */
body.mv2.woocommerce-account.logged-in .et_pb_row_2{ padding:20px !important; }
body.mv2.woocommerce-account.logged-in .et_pb_section_0{ padding:28px 0 !important; }

/* ================= RESPONSIVE ================= */
@media (max-width:980px){
	/* stack into one column; fully reset the desktop grid placement */
	body.mv2.woocommerce-account.logged-in .woocommerce{ display:flex; flex-direction:column; grid-template-columns:none; grid-template-rows:none; gap:20px; }
	body.mv2.woocommerce-account.logged-in .mv-dash__railtitle{ grid-column:auto; grid-row:auto; order:1; padding:0 4px 4px; line-height:1.1; }
	body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content{ grid-column:auto; grid-row:auto; order:2; }
	body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation{ grid-column:auto; grid-row:auto; order:3; }
	/* nav = clean full-width single-column list (kills the cramped 2-col squeeze) */
	body.mv2 .woocommerce-MyAccount-navigation ul{ display:block; }
	body.mv2 .woocommerce-MyAccount-navigation li a{ padding:11px 16px; margin:2px 0; }
	body.mv2 .mv-dash__bottom{ grid-template-columns:1fr; }
	body.mv2.woocommerce-account.logged-in .et_pb_row_2{ padding:16px !important; }
	body.mv2.woocommerce-account.logged-in .et_pb_section_0{ padding:12px 0 !important; }
}
@media (max-width:767px){
	body.mv2 .mv-dash__hero{ flex-direction:column; text-align:center; padding:30px 20px; align-items:center; }
	body.mv2 .mv-dash__hero-wings{ width:72px; }
	body.mv2 .mv-dash__hero-sub{ margin:0 auto; }
	body.mv2 .mv-dash__hero-name{ font-size:32px; }
	body.mv2 .mv-dash__stats{ grid-template-columns:1fr 1fr; }
	body.mv2 .mv-dash__railtitle{ text-align:center; padding:0 6px 8px; line-height:1.1; }
	/* phone: kill the big top gap above the panel (Divi mobile section/row padding) */
	body.mv2.woocommerce-account.logged-in .et_pb_section_0{ padding:8px 0 !important; }
	body.mv2.woocommerce-account.logged-in .et_pb_row_2{ padding:16px !important; }
	body.mv2.woocommerce-account.logged-in .et_pb_row_2 .et_pb_column{ padding-top:0 !important; margin-top:0 !important; }
	body.mv2 .mv-dash__help{ display:block; background:linear-gradient(120deg,#3D1173,#8300E9); color:#fff; border-radius:14px; padding:22px; text-align:center; }
	body.mv2 .mv-dash__help-t{ font-family:'Barlow Condensed',sans-serif; font-weight:600; font-size:19px; display:block; }
	body.mv2 .mv-dash__help-s{ font-size:13.5px; color:#E6DBF5; display:block; margin:4px 0 14px; }
	body.mv2 .mv-dash__help a{ display:inline-block; background:#fff; color:#8300E9; font-weight:600; padding:10px 20px; border-radius:8px; text-decoration:none; font-size:14px; }
}
@media (max-width:440px){
	body.mv2 .mv-dash__stats{ grid-template-columns:1fr; }
	body.mv2 .mv-dash__order-count{ display:none; }
}

/* ---- nav item icons (match the mockup) ---- */
body.mv2 .woocommerce-MyAccount-navigation li a{ position:relative; }
body.mv2 .woocommerce-MyAccount-navigation li a::before{ content:''; width:18px; height:18px; flex:0 0 auto; background-repeat:no-repeat; background-position:center; background-size:18px 18px; }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3Crect%20x%3D%2214%22%20y%3D%223%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3Crect%20x%3D%2214%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--orders a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202%203%206v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2V6l-3-4Z%22/%3E%3Cpath%20d%3D%22M3%206h18%22/%3E%3Cpath%20d%3D%22M16%2010a4%204%200%200%201-8%200%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--subscriptions a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2012a9%209%200%200%201%209-9%209.75%209.75%200%200%201%206.74%202.74L21%208%22/%3E%3Cpath%20d%3D%22M21%203v5h-5%22/%3E%3Cpath%20d%3D%22M21%2012a9%209%200%200%201-9%209%209.75%209.75%200%200%201-6.74-2.74L3%2016%22/%3E%3Cpath%20d%3D%22M8%2016H3v5%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22/%3E%3Cpolyline%20points%3D%227%2010%2012%2015%2017%2010%22/%3E%3Cline%20x1%3D%2212%22%20y1%3D%2215%22%20x2%3D%2212%22%20y2%3D%223%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-address a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%206-8%2012-8%2012s-8-6-8-12a8%208%200%200%201%2016%200Z%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%223%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--payment-methods a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20width%3D%2220%22%20height%3D%2214%22%20x%3D%222%22%20y%3D%225%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M2%2010h20%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19%2021v-2a4%204%200%200%200-4-4H9a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--coupon-affiliate a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22/%3E%3Cpath%20d%3D%22M16%203.13a4%204%200%200%201%200%207.75%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--subscription-scheduler a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22/%3E%3Cpolyline%20points%3D%2212%206%2012%2012%2016%2014%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236A6478%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22/%3E%3Cpolyline%20points%3D%2216%2017%2021%2012%2016%207%22/%3E%3Cline%20x1%3D%2221%22%20y1%3D%2212%22%20x2%3D%229%22%20y2%3D%2212%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--dashboard a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3Crect%20x%3D%2214%22%20y%3D%223%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3Crect%20x%3D%2214%22%20y%3D%2214%22%20width%3D%227%22%20height%3D%227%22%20rx%3D%221%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--orders.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--orders a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202%203%206v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2V6l-3-4Z%22/%3E%3Cpath%20d%3D%22M3%206h18%22/%3E%3Cpath%20d%3D%22M16%2010a4%204%200%200%201-8%200%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--subscriptions.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--subscriptions a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2012a9%209%200%200%201%209-9%209.75%209.75%200%200%201%206.74%202.74L21%208%22/%3E%3Cpath%20d%3D%22M21%203v5h-5%22/%3E%3Cpath%20d%3D%22M21%2012a9%209%200%200%201-9%209%209.75%209.75%200%200%201-6.74-2.74L3%2016%22/%3E%3Cpath%20d%3D%22M8%2016H3v5%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22/%3E%3Cpolyline%20points%3D%227%2010%2012%2015%2017%2010%22/%3E%3Cline%20x1%3D%2212%22%20y1%3D%2215%22%20x2%3D%2212%22%20y2%3D%223%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-address.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-address a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2010c0%206-8%2012-8%2012s-8-6-8-12a8%208%200%200%201%2016%200Z%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2210%22%20r%3D%223%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--payment-methods.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--payment-methods a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20width%3D%2220%22%20height%3D%2214%22%20x%3D%222%22%20y%3D%225%22%20rx%3D%222%22/%3E%3Cpath%20d%3D%22M2%2010h20%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19%2021v-2a4%204%200%200%200-4-4H9a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227%22%20r%3D%224%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--coupon-affiliate.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--coupon-affiliate a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22/%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22/%3E%3Cpath%20d%3D%22M16%203.13a4%204%200%200%201%200%207.75%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--subscription-scheduler.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--subscription-scheduler a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22/%3E%3Cpolyline%20points%3D%2212%206%2012%2012%2016%2014%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout.is-active a::before,
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a:hover::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%238300E9%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22/%3E%3Cpolyline%20points%3D%2216%2017%2021%2012%2016%207%22/%3E%3Cline%20x1%3D%2221%22%20y1%3D%2212%22%20x2%3D%229%22%20y2%3D%2212%22/%3E%3C/svg%3E"); }
body.mv2 .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a::before{ background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2218%22%20height%3D%2218%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23B23131%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22/%3E%3Cpolyline%20points%3D%2216%2017%2021%2012%2016%207%22/%3E%3Cline%20x1%3D%2221%22%20y1%3D%2212%22%20x2%3D%229%22%20y2%3D%2212%22/%3E%3C/svg%3E"); }

/* <<< MV2 DASHBOARD CSS END <<< */

/* >>> MV2 ABOUT CSS START >>> */
body.mv2 .mv-about{ --mv-about-max:1120px; color:var(--mv-ink); font-family:var(--mv-font-body); }
body.mv2 .mv-about *{ box-sizing:border-box; }
body.mv2 .mv-about__col{ max-width:var(--mv-about-max); margin:0 auto; padding:0 24px; }
body.mv2 .mv-about__center{ text-align:center; }

/* shared type */
body.mv2 .mv-about__eyebrow,
body.mv2 .mv-about__kicker{ font-family:var(--mv-font-display); text-transform:uppercase; letter-spacing:.16em; font-weight:600; font-size:.8125rem; color:var(--mv-purple); margin:0 0 12px; }
body.mv2 .mv-about__h2{ font-family:var(--mv-font-display); font-weight:600; font-size:clamp(1.75rem,3.6vw,2.5rem); line-height:1.1; letter-spacing:.01em; color:var(--mv-ink); margin:0 0 8px; }
body.mv2 .mv-about__h2--center{ text-align:center; }
body.mv2 .mv-about__h2--on-dark{ color:#fff; }
body.mv2 .mv-about__rule{ display:inline-block; width:60px; height:3px; border-radius:2px; background:var(--mv-purple); margin:8px 0 0; }
body.mv2 .mv-about__rule--light{ background:#B06BF2; }

/* HERO */
body.mv2 .mv-about__hero{ background:linear-gradient(150deg,#2A0A4E 0%,#3D1173 55%,#1B0733 100%); position:relative; overflow:hidden; }
body.mv2 .mv-about__hero-inner{ max-width:var(--mv-about-max); margin:0 auto; padding:clamp(40px,5vw,64px) 24px; display:grid; grid-template-columns:1.15fr .85fr; align-items:center; gap:32px; position:relative; z-index:1; }
body.mv2 .mv-about__hero::after{ content:""; position:absolute; top:-20%; right:-6%; width:55%; height:150%; background:radial-gradient(closest-side, rgba(131,0,233,.4), transparent 70%); pointer-events:none; }
body.mv2 .mv-about__eyebrow{ color:#7CFC00; }
body.mv2 .mv-about__title{ font-family:var(--mv-font-display); font-weight:700; color:#fff; font-size:clamp(2.5rem,5.5vw,3.75rem); line-height:1; letter-spacing:.005em; margin:0 0 18px; }
body.mv2 .mv-about__lede{ color:rgba(255,255,255,.82); font-size:clamp(1rem,1.4vw,1.1875rem); line-height:1.6; max-width:46ch; margin:0; }
body.mv2 .mv-about__hero-media{ position:relative; display:flex; justify-content:center; align-items:flex-end; }
body.mv2 .mv-about__hero-media img{ width:auto; max-width:100%; max-height:420px; height:auto; filter:drop-shadow(0 30px 50px rgba(0,0,0,.5)); }

/* section rhythm */
body.mv2 .mv-about__section{ padding:clamp(48px,7vw,80px) 0; }

/* PRODUCT LINE */
body.mv2 .mv-about__product{ background:var(--mv-white); }
body.mv2 .mv-about__block{ display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:clamp(28px,5vw,64px); margin-top:clamp(36px,5vw,56px); }
body.mv2 .mv-about__block--rev .mv-about__block-text{ order:2; }
body.mv2 .mv-about__block--rev .mv-about__block-media{ order:1; }
body.mv2 .mv-about__block-ic{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:var(--mv-purple); color:#fff; margin-bottom:14px; }
body.mv2 .mv-about__block-ic svg{ width:24px; height:24px; }
body.mv2 .mv-about__block-t{ font-family:var(--mv-font-display); font-weight:600; font-size:1.375rem; color:var(--mv-ink); margin:0 0 12px; letter-spacing:.01em; }
body.mv2 .mv-about__block-text p{ margin:0; color:var(--mv-ink-2); font-size:var(--mv-t-body); line-height:1.62; }
body.mv2 .mv-about__block-media img{ width:100%; height:auto; border-radius:var(--mv-radius-lg); display:block; box-shadow:0 12px 30px rgba(42,10,74,.14); }

/* STORY / COMEBACK */
body.mv2 .mv-about__story{ background:var(--mv-surface-2); }
body.mv2 .mv-about__story-lede{ color:var(--mv-ink-2); font-size:clamp(1.0625rem,1.5vw,1.1875rem); line-height:1.6; max-width:48ch; margin:16px auto 0; }
body.mv2 .mv-about__timeline{ list-style:none; margin:clamp(36px,5vw,52px) 0 0; padding:0; position:relative; max-width:720px; margin-left:auto; margin-right:auto; }
body.mv2 .mv-about__timeline::before{ content:""; position:absolute; left:11px; top:8px; bottom:8px; width:2px; background:linear-gradient(180deg,var(--mv-purple) 0%,var(--mv-purple-deep) 60%,var(--mv-line) 100%); }
body.mv2 .mv-about__milestone{ position:relative; padding:0 0 34px 56px; }
body.mv2 .mv-about__milestone:last-child{ padding-bottom:0; }
body.mv2 .mv-about__milestone::before{ content:""; position:absolute; left:4px; top:4px; width:16px; height:16px; border-radius:50%; background:var(--mv-purple); box-shadow:0 0 0 5px var(--mv-purple-50); }
body.mv2 .mv-about__mvyear{ font-family:var(--mv-font-display); font-weight:600; letter-spacing:.04em; text-transform:uppercase; font-size:.9375rem; color:var(--mv-purple); margin-bottom:4px; }
body.mv2 .mv-about__mvlabel{ font-family:var(--mv-font-display); font-weight:600; font-size:1.25rem; color:var(--mv-ink); margin:0 0 6px; letter-spacing:.01em; }
body.mv2 .mv-about__mvbody p{ margin:0; color:var(--mv-ink-2); font-size:var(--mv-t-body); line-height:1.6; }
body.mv2 .mv-about__today{ max-width:720px; margin:clamp(28px,4vw,40px) auto 0; text-align:center; }
body.mv2 .mv-about__today p{ margin:0; color:var(--mv-ink); font-size:clamp(1.0625rem,1.5vw,1.25rem); line-height:1.6; font-weight:500; }

/* WHY CHOOSE */
body.mv2 .mv-about__why-wrap{ background:var(--mv-white); }
body.mv2 .mv-about__why{ background:linear-gradient(155deg,#2A0A4E,#3D1173 60%,#1B0733); border-radius:var(--mv-radius-lg); padding:clamp(32px,5vw,52px) clamp(20px,4vw,44px); }
body.mv2 .mv-about__why .mv-about__center{ margin-bottom:clamp(28px,4vw,40px); }
body.mv2 .mv-about__reasons{ display:grid; grid-template-columns:repeat(5,1fr); gap:20px; }
body.mv2 .mv-about__reason{ text-align:center; }
body.mv2 .mv-about__reason-ic{ display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; margin-bottom:14px; }
body.mv2 .mv-about__reason-ic svg{ width:26px; height:26px; }
body.mv2 .mv-about__reason-t{ font-family:var(--mv-font-display); font-weight:600; font-size:1.0625rem; color:#fff; margin:0 0 8px; letter-spacing:.01em; line-height:1.25; }
body.mv2 .mv-about__reason-b{ margin:0; color:rgba(255,255,255,.72); font-size:var(--mv-t-small); line-height:1.5; }
body.mv2 .mv-about__reason-b a{ color:#C9A6F5; font-weight:600; text-decoration:none; white-space:nowrap; }
body.mv2 .mv-about__reason-b a:hover{ text-decoration:underline; }
body.mv2 .mv-about__ast{ color:#7CFC00; }
body.mv2 .mv-about__note{ text-align:center; margin:clamp(24px,3vw,32px) 0 4px; color:var(--mv-ink-2); font-size:var(--mv-t-body); }
body.mv2 .mv-about__fn{ text-align:center; margin:0; color:var(--mv-ink-3); font-size:.8125rem; font-style:italic; }
body.mv2 .mv-about__fn a{ color:var(--mv-purple); font-weight:600; text-decoration:none; }
body.mv2 .mv-about__fn a:hover{ text-decoration:underline; }

/* CTA */
body.mv2 .mv-about__cta{ background:linear-gradient(150deg,#3D1173,#1B0733); padding:clamp(52px,7vw,80px) 0; text-align:center; }
body.mv2 .mv-about__cta-t{ font-family:var(--mv-font-display); font-weight:700; font-size:clamp(1.875rem,4vw,2.5rem); color:#fff; margin:0 0 12px; letter-spacing:.01em; }
body.mv2 .mv-about__cta-sub{ color:rgba(255,255,255,.8); font-size:var(--mv-t-body); margin:0 0 26px; }
body.mv2 .mv-about__cta-btn{ display:inline-block; background:var(--mv-green); color:#fff; font-family:var(--mv-font-display); font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:1rem; padding:16px 40px; border-radius:var(--mv-radius); text-decoration:none; transition:background .18s, transform .18s; min-height:var(--mv-tap); }
body.mv2 .mv-about__cta-btn:hover{ background:var(--mv-green-900); transform:translateY(-2px); }

/* RESPONSIVE */
@media(max-width:980px){
	body.mv2 .mv-about__reasons{ grid-template-columns:repeat(3,1fr); gap:24px 16px; }
}
@media(max-width:767px){
	body.mv2 .mv-about__hero-inner{ grid-template-columns:1fr; text-align:center; }
	body.mv2 .mv-about__lede{ margin-left:auto; margin-right:auto; }
	body.mv2 .mv-about__hero-media{ order:-1; }
	body.mv2 .mv-about__hero-media img{ max-height:300px; }
	body.mv2 .mv-about__block,
	body.mv2 .mv-about__block--rev{ grid-template-columns:1fr; }
	body.mv2 .mv-about__block--rev .mv-about__block-text{ order:1; }
	body.mv2 .mv-about__block--rev .mv-about__block-media{ order:2; }
	body.mv2 .mv-about__reasons{ grid-template-columns:1fr 1fr; }
	body.mv2 .mv-about__milestone{ padding-left:48px; }
}
@media(max-width:420px){
	body.mv2 .mv-about__reasons{ grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce){
	body.mv2 .mv-about__cta-btn{ transition:none; }
	body.mv2 .mv-about__cta-btn:hover{ transform:none; }
}
/* <<< MV2 ABOUT CSS END <<< */

/* >>> MV2 SHIP CSS START >>> */
body.mv2 .mv-ship{ --mv-ship-max:1080px; color:var(--mv-ink); font-family:var(--mv-font-body); }
body.mv2 .mv-ship *{ box-sizing:border-box; }
body.mv2 .mv-ship__wrap{ max-width:var(--mv-ship-max); margin:0 auto; padding:0 24px; }

/* HERO */
body.mv2 .mv-ship__hero{ background:linear-gradient(150deg,#2A0A4E 0%,#3D1173 60%,#1B0733 100%); padding:clamp(40px,5vw,64px) 0; position:relative; overflow:hidden; }
body.mv2 .mv-ship__hero::after{ content:""; position:absolute; top:-30%; right:-8%; width:48%; height:160%; background:radial-gradient(closest-side, rgba(131,0,233,.35), transparent 70%); pointer-events:none; }
body.mv2 .mv-ship__eyebrow{ font-family:var(--mv-font-display); text-transform:uppercase; letter-spacing:.16em; font-weight:600; font-size:.8125rem; color:#7CFC00; margin:0 0 12px; position:relative; z-index:1; }
body.mv2 .mv-ship__title{ font-family:var(--mv-font-display); font-weight:700; color:#fff; font-size:clamp(2.25rem,5vw,3.25rem); line-height:1.02; letter-spacing:.005em; margin:0 0 16px; position:relative; z-index:1; }
body.mv2 .mv-ship__lede{ color:rgba(255,255,255,.82); font-size:clamp(1rem,1.4vw,1.1875rem); line-height:1.6; max-width:52ch; margin:0; position:relative; z-index:1; }

/* BODY LAYOUT: nav rail + content */
body.mv2 .mv-ship__body{ display:grid; grid-template-columns:240px 1fr; gap:clamp(28px,4vw,56px); align-items:start; padding-top:clamp(40px,5vw,64px); padding-bottom:clamp(48px,6vw,80px); }

/* JUMP NAV (sticky) */
body.mv2 .mv-ship__nav{ position:sticky; top:96px; align-self:start; }
body.mv2 .mv-ship__nav-label{ display:block; font-family:var(--mv-font-display); text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; font-weight:600; color:var(--mv-ink-3); margin-bottom:12px; }
body.mv2 .mv-ship__nav-list{ list-style:none; margin:0; padding:0; border-left:2px solid var(--mv-line); }
body.mv2 .mv-ship__nav-list li{ margin:0; }
body.mv2 .mv-ship__nav-list a{ display:block; padding:8px 0 8px 16px; margin-left:-2px; border-left:2px solid transparent; color:var(--mv-ink-2); text-decoration:none; font-size:var(--mv-t-small); line-height:1.3; transition:color .15s, border-color .15s; }
body.mv2 .mv-ship__nav-list a:hover,
body.mv2 .mv-ship__nav-list a:focus-visible{ color:var(--mv-purple); border-left-color:var(--mv-purple); }

/* CONTENT */
body.mv2 .mv-ship__content{ min-width:0; }
body.mv2 .mv-ship__preamble{ margin-bottom:clamp(24px,3vw,36px); }
body.mv2 .mv-ship__section{ scroll-margin-top:96px; padding-bottom:clamp(28px,4vw,44px); margin-bottom:clamp(28px,4vw,44px); border-bottom:1px solid var(--mv-line); }
body.mv2 .mv-ship__section:last-child{ border-bottom:0; }
body.mv2 .mv-ship__h2{ font-family:var(--mv-font-display); font-weight:600; font-size:clamp(1.5rem,3vw,2rem); line-height:1.1; letter-spacing:.01em; color:var(--mv-ink); margin:0 0 16px; }

/* the restyled policy content itself */
body.mv2 .mv-ship__section-body h4{ font-family:var(--mv-font-display); font-weight:600; font-size:1.0625rem; letter-spacing:.01em; color:var(--mv-purple-deep); margin:24px 0 8px; }
body.mv2 .mv-ship__section-body p{ margin:0 0 14px; color:var(--mv-ink-2); font-size:var(--mv-t-body); line-height:1.62; }
body.mv2 .mv-ship__section-body strong{ color:var(--mv-ink); font-weight:600; }
body.mv2 .mv-ship__section-body a{ color:var(--mv-purple); font-weight:600; text-decoration:none; }
body.mv2 .mv-ship__section-body a:hover{ text-decoration:underline; }
body.mv2 .mv-ship__section-body ul{ list-style:none; margin:0 0 16px; padding:0; }
body.mv2 .mv-ship__section-body li{ position:relative; padding:0 0 8px 24px; color:var(--mv-ink-2); font-size:var(--mv-t-body); line-height:1.55; }
body.mv2 .mv-ship__section-body li::before{ content:""; position:absolute; left:4px; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--mv-green); }
body.mv2 .mv-ship__section-body img{ max-width:100%; height:auto; border-radius:var(--mv-radius); border:1px solid var(--mv-line); margin:8px 0 16px; display:block; }

body.mv2 .mv-ship__top{ display:inline-block; margin-top:6px; font-size:.8125rem; color:var(--mv-ink-3); text-decoration:none; font-family:var(--mv-font-display); text-transform:uppercase; letter-spacing:.08em; }
body.mv2 .mv-ship__top:hover{ color:var(--mv-purple); }

/* CTA */
body.mv2 .mv-ship__cta{ background:var(--mv-surface-2); padding:clamp(36px,5vw,56px) 0; text-align:center; border-top:1px solid var(--mv-line); }
body.mv2 .mv-ship__cta-t{ font-family:var(--mv-font-display); font-weight:600; font-size:clamp(1.25rem,2.4vw,1.625rem); color:var(--mv-ink); margin:0 0 8px; }
body.mv2 .mv-ship__cta-sub{ color:var(--mv-ink-2); font-size:var(--mv-t-body); margin:0; }
body.mv2 .mv-ship__cta-sub a{ color:var(--mv-purple); font-weight:700; text-decoration:none; white-space:nowrap; }
body.mv2 .mv-ship__cta-sub a:hover{ text-decoration:underline; }

/* RESPONSIVE — collapse the rail, nav becomes a horizontal chip row on top */
@media(max-width:860px){
	body.mv2 .mv-ship__body{ grid-template-columns:1fr; gap:24px; }
	body.mv2 .mv-ship__nav{ position:static; top:auto; background:var(--mv-surface-2); border-radius:var(--mv-radius-lg); padding:16px 18px; }
	body.mv2 .mv-ship__nav-list{ border-left:0; display:flex; flex-wrap:wrap; gap:8px; }
	body.mv2 .mv-ship__nav-list a{ padding:8px 14px; margin-left:0; border:1px solid var(--mv-line); border-radius:999px; background:#fff; min-height:var(--mv-tap); display:flex; align-items:center; }
	body.mv2 .mv-ship__nav-list a:hover,
	body.mv2 .mv-ship__nav-list a:focus-visible{ border-color:var(--mv-purple); }
}
@media(prefers-reduced-motion:reduce){
	body.mv2 .mv-ship__nav-list a{ transition:none; }
}
/* <<< MV2 SHIP CSS END <<< */

/* MV2 DASH AVATAR START */
body.mv2 .mv-dash__hero-avatar{display:flex;align-items:center;justify-content:center}
body.mv2 .mv-dash__avatar{position:relative;width:96px;height:96px;border-radius:50%;overflow:hidden;background:var(--mv-av-bg,#8300E9);box-shadow:0 4px 14px rgba(19,0,38,.18);flex:0 0 auto}
body.mv2 .mv-dash__avatar-initial{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);font-weight:600;font-size:44px;line-height:1;color:#fff;text-transform:uppercase;letter-spacing:.01em;-webkit-user-select:none;user-select:none}
body.mv2 .mv-dash__avatar-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;background:var(--mv-av-bg,#8300E9)}
@media (max-width:600px){body.mv2 .mv-dash__avatar{width:72px;height:72px}body.mv2 .mv-dash__avatar-initial{font-size:34px}}
/* MV2 DASH AVATAR END */

/* MV2 AVATAR PICKER START */
body.mv2 .mv-dash__avatar{position:relative;display:flex;align-items:center;justify-content:center;width:96px;height:96px;border:none;padding:0;cursor:pointer;border-radius:50%;overflow:visible;background:transparent}
body.mv2 .mv-dash__avatar-initial{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--mv-av-bg,#8300E9);font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);font-weight:600;font-size:44px;line-height:1;color:#fff;text-transform:uppercase}
body.mv2 .mv-dash__avatar-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;background:var(--mv-av-bg,#8300E9)}
body.mv2 .mv-dash__avatar-fruit{position:absolute;inset:0;border-radius:50%;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1px rgba(19,0,38,.08)}
body.mv2 .mv-dash__avatar-fruit .mv-av-svg{width:100%;height:100%;display:block}
body.mv2 .mv-dash__avatar-edit{position:absolute;right:-2px;bottom:-2px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#fff;color:var(--mv-purple,#8300E9);box-shadow:0 2px 8px rgba(19,0,38,.22);transition:transform .12s ease}
body.mv2 .mv-dash__avatar:hover .mv-dash__avatar-edit{transform:scale(1.08)}
body.mv2 .mv-avpick[hidden]{display:none}
body.mv2 .mv-avpick{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px}
body.mv2 .mv-avpick__backdrop{position:absolute;inset:0;background:rgba(19,0,38,.55)}
body.mv2 .mv-avpick__panel{position:relative;width:min(560px,94vw);max-height:86vh;overflow-y:auto;background:#fff;border-radius:18px;padding:24px;box-shadow:0 24px 70px rgba(19,0,38,.4)}
body.mv2 .mv-avpick__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
body.mv2 .mv-avpick__title{margin:0;font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);font-weight:600;font-size:24px;color:var(--mv-ink,#130026)}
body.mv2 .mv-avpick__x{border:none;background:#f3eefb;color:var(--mv-purple,#8300E9);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}
body.mv2 .mv-avpick__x:hover{background:#e8ddf7}
body.mv2 .mv-avpick__sub{margin:6px 0 18px;color:var(--mv-ink-soft,#6a6478);font-size:14px}
body.mv2 .mv-avpick__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
body.mv2 .mv-avpick__item{display:flex;flex-direction:column;align-items:center;gap:6px;border:2px solid transparent;background:#faf8fe;border-radius:14px;padding:10px 6px;cursor:pointer;transition:border-color .12s ease,background .12s ease}
body.mv2 .mv-avpick__item:hover{background:#f3eefb;border-color:#e0cffa}
body.mv2 .mv-avpick__item.is-active{border-color:var(--mv-purple,#8300E9);background:#f3eefb}
body.mv2 .mv-avpick__item .mv-av-svg{width:56px;height:56px;display:block;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px rgba(19,0,38,.06)}
body.mv2 .mv-avpick__label{font-size:11px;line-height:1.2;color:var(--mv-ink-soft,#6a6478);text-align:center}
body.mv2 .mv-avpick__item--initial .mv-avpick__none{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(135deg,#8300E9,#B347FF);color:#fff;font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}
@media(max-width:600px){
body.mv2 .mv-dash__avatar{width:72px;height:72px}
body.mv2 .mv-dash__avatar-initial{font-size:34px}
body.mv2 .mv-dash__avatar-edit{width:26px;height:26px}
body.mv2 .mv-avpick__grid{grid-template-columns:repeat(4,1fr);gap:10px}
body.mv2 .mv-avpick__item .mv-av-svg,body.mv2 .mv-avpick__item--initial .mv-avpick__none{width:48px;height:48px}
}
/* MV2 AVATAR PICKER END */

/* MV2 HERO CTA CONFETTI START */
body.mv2 .mv-hero__cta{position:relative;overflow:visible}
body.mv2 .mv-hero__cta:before,body.mv2 .mv-hero__cta:after{position:absolute;content:'';display:block;width:140%;height:100%;left:-20%;z-index:-1;background-repeat:no-repeat;pointer-events:none}
body.mv2 .mv-hero__cta:before{display:none;top:-75%;background-image:radial-gradient(circle,#8300E9 20%,transparent 20%),radial-gradient(circle,transparent 20%,#B347FF 20%,transparent 30%),radial-gradient(circle,#EA580C 20%,transparent 20%),radial-gradient(circle,#059669 20%,transparent 20%),radial-gradient(circle,transparent 10%,#2563EB 15%,transparent 20%),radial-gradient(circle,#F2C94C 20%,transparent 20%),radial-gradient(circle,#8300E9 20%,transparent 20%),radial-gradient(circle,#DB2777 20%,transparent 20%),radial-gradient(circle,#059669 20%,transparent 20%);background-size:10% 10%,20% 20%,15% 15%,20% 20%,18% 18%,10% 10%,15% 15%,10% 10%,18% 18%}
body.mv2 .mv-hero__cta:after{display:none;bottom:-75%;background-image:radial-gradient(circle,#8300E9 20%,transparent 20%),radial-gradient(circle,#EA580C 20%,transparent 20%),radial-gradient(circle,transparent 10%,#2563EB 15%,transparent 20%),radial-gradient(circle,#059669 20%,transparent 20%),radial-gradient(circle,#F2C94C 20%,transparent 20%),radial-gradient(circle,#B347FF 20%,transparent 20%),radial-gradient(circle,#DB2777 20%,transparent 20%);background-size:15% 15%,20% 20%,18% 18%,20% 20%,15% 15%,10% 10%,20% 20%}
body.mv2 .mv-hero__cta.mv-confetti:before{display:block;animation:mvTopBubbles ease-in-out .75s forwards}
body.mv2 .mv-hero__cta.mv-confetti:after{display:block;animation:mvBottomBubbles ease-in-out .75s forwards}
@keyframes mvTopBubbles{0%{background-position:5% 90%,10% 90%,10% 90%,15% 90%,25% 90%,25% 90%,40% 90%,55% 90%,70% 90%}50%{background-position:0% 80%,0% 20%,10% 40%,20% 0%,30% 30%,22% 50%,50% 50%,65% 20%,90% 30%}100%{background-position:0% 70%,0% 10%,10% 30%,20% -10%,30% 20%,22% 40%,50% 40%,65% 10%,90% 20%;background-size:0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0%}}
@keyframes mvBottomBubbles{0%{background-position:10% -10%,30% 10%,55% -10%,70% -10%,85% -10%,70% -10%,70% 0%}50%{background-position:0% 80%,20% 80%,45% 60%,60% 100%,75% 70%,95% 60%,105% 0%}100%{background-position:0% 90%,20% 90%,45% 70%,60% 110%,75% 80%,95% 70%,110% 10%;background-size:0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0%,0% 0%}}
/* MV2 HERO CTA CONFETTI END */

/* MV2 HERO FLUID DESKTOP START */
@media (min-width:2000px){
body.mv2 .mv-hero__copy{max-width:clamp(544px,29vw,1150px);padding-left:clamp(48px,3.4vw,150px);padding-right:clamp(24px,1.6vw,80px)}
body.mv2 .mv-hero__eyebrow{font-size:clamp(32px,1.6vw,60px)}
body.mv2 .mv-hero__title{font-size:clamp(92px,4.9vw,190px);line-height:1.03}
body.mv2 .mv-hero__sub{font-size:clamp(20px,1vw,38px);max-width:clamp(480px,24vw,900px)}
body.mv2 .mv-hero__cta{font-size:clamp(19px,0.92vw,32px);padding:clamp(16px,0.9vw,30px) clamp(32px,1.9vw,66px)}
}
/* MV2 HERO FLUID DESKTOP END */

/* MV2 CHECKOUT CART NOTICE START */
body.mv2.woocommerce-checkout .woocommerce-message{
  position:relative;
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:linear-gradient(90deg,#8300E9,#672B91) !important;
  color:#fff;border:none;border-radius:12px;
  padding:18px 24px 18px 58px !important;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);font-size:16px;line-height:1.4;
  box-shadow:0 6px 22px rgba(131,0,233,.18);
}
body.mv2.woocommerce-checkout .woocommerce-message::before{
  content:'';position:absolute;left:22px;top:50%;transform:translateY(-50%);
  width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.16);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;background-size:15px 15px;
  color:transparent;font-size:0;
}
body.mv2.woocommerce-checkout .woocommerce-message .button.wc-forward{
  margin-left:auto;
  background:#fff;color:#8300E9;
  -webkit-text-fill-color:#8300E9;
  border:none;border-radius:8px;
  padding:11px 22px;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  box-shadow:none;transition:transform .12s ease,box-shadow .12s ease;
}
body.mv2.woocommerce-checkout .woocommerce-message .button.wc-forward:hover{
  transform:translateY(-1px);box-shadow:0 4px 14px rgba(19,0,38,.22);
  background:#fff;color:#672B91;-webkit-text-fill-color:#672B91;
}
@media (max-width:600px){
  body.mv2.woocommerce-checkout .woocommerce-message{padding:16px 18px 16px 52px !important;font-size:15px}
  body.mv2.woocommerce-checkout .woocommerce-message::before{left:18px}
  body.mv2.woocommerce-checkout .woocommerce-message .button.wc-forward{margin-left:0;width:100%;text-align:center;margin-top:6px}
}
/* MV2 CHECKOUT CART NOTICE END */

/* MV2 CHECKOUT LOGIN GATE START */
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a){
  max-width:560px;margin:8px auto 0;
  background:#fff;border:1px solid var(--mv-line,#E2E2E6);border-radius:16px;
  padding:0;overflow:hidden;
  box-shadow:0 6px 24px rgba(19,0,38,.10);
  text-align:center;
}
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner{
  padding:0;
}
/* header band with lock + heading via ::before on the inner wrapper */
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner::before{
  content:'One quick step before checkout';
  display:block;
  background:linear-gradient(90deg,#8300E9,#672B91);
  color:#fff;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:21px;font-weight:600;letter-spacing:.01em;
  padding:22px 28px;
  line-height:1.25;
}
/* the original sentence <p> becomes the reassurance line + button row */
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p{
  font-size:0;
  padding:26px 28px 28px;margin:0;
  position:relative;
}
/* reassurance line replacing the "You must ... before checking out" copy */
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p::before{
  content:'Sign in to your account, or create one in under a minute. It keeps your orders and subscriptions in one place.';
  display:block;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:15px;line-height:1.5;color:var(--mv-ink-soft,#6a6478);
  margin-bottom:22px;
}
/* the two links → buttons, shown side by side */
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p a{
  display:inline-block;
  font-size:15px;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  padding:13px 30px;border-radius:9px;
  text-decoration:none;
  margin:0 6px;
  transition:transform .12s ease,box-shadow .12s ease;
}
/* LOGIN = solid primary */
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p > a{
  background:#8300E9;color:#fff;-webkit-text-fill-color:#fff;
  border:1px solid #8300E9;
}
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p > a:hover{
  transform:translateY(-1px);box-shadow:0 6px 18px rgba(131,0,233,.30);
  background:#672B91;border-color:#672B91;
}
/* REGISTER = outline secondary */
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p > strong > a{
  background:#fff;color:#8300E9;-webkit-text-fill-color:#8300E9;
  border:1px solid #8300E9;
}
body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p > strong > a:hover{
  transform:translateY(-1px);box-shadow:0 4px 14px rgba(19,0,38,.18);
  background:#faf8fe;
}
@media (max-width:600px){
  body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a){max-width:none;margin:8px 0 0}
  body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner::before{font-size:19px;padding:18px 20px}
  body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p{padding:22px 20px 24px}
  body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p a{display:block;margin:0 0 10px}
  body.mv2.woocommerce-checkout .et_pb_text:has(> .et_pb_text_inner > p > strong > a) .et_pb_text_inner > p > strong > a{margin-bottom:0}
}
/* MV2 CHECKOUT LOGIN GATE END */

/* MV2 CHECKOUT CONSENT BOX START */
body.mv2.woocommerce-checkout p.wcss-consent-checkbox{
  background:#faf8fe;
  border:1px solid #ece4fb;
  border-radius:12px;
  padding:16px 18px !important;
  margin:0 0 18px;
  display:block;
}
body.mv2.woocommerce-checkout p.wcss-consent-checkbox label.checkbox{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:0;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14px;
  line-height:1.5;
  color:var(--mv-ink,#231f20);
  cursor:pointer;
}
body.mv2.woocommerce-checkout p.wcss-consent-checkbox input#wcss_consent{
  appearance:auto;
  -webkit-appearance:checkbox;
  width:20px;
  height:20px;
  min-width:20px;
  margin:1px 0 0;
  accent-color:#8300E9;
  cursor:pointer;
  flex:0 0 auto;
}
body.mv2.woocommerce-checkout p.wcss-consent-checkbox .required{
  color:#8300E9;
  text-decoration:none;
}
@media (max-width:600px){
  body.mv2.woocommerce-checkout p.wcss-consent-checkbox{padding:14px 16px !important}
  body.mv2.woocommerce-checkout p.wcss-consent-checkbox label.checkbox{font-size:14px}
}
/* MV2 CHECKOUT CONSENT BOX END */

/* MV2 ACCOUNT SUBPAGES — SUBSCRIPTIONS START */
/* ===== shared: content headings + panels across sub-pages ===== */
body.mv2.woocommerce-account .woocommerce-MyAccount-content h2,
body.mv2.woocommerce-account .woocommerce-MyAccount-content h3{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:20px;font-weight:600;letter-spacing:.01em;
  color:var(--mv-ink,#231f20);
  margin:26px 0 14px;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content h2:first-child,
body.mv2.woocommerce-account .woocommerce-MyAccount-content h3:first-child{margin-top:0}

/* ===== subscriptions LIST table → card-styled ===== */
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_subscriptions,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_orders{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  border:1px solid var(--mv-line,#E2E2E6);
  border-radius:14px;
  border-collapse:separate;border-spacing:0;
  overflow:hidden;
  background:#fff;
  width:100%;
  box-shadow:0 2px 10px rgba(19,0,38,.04);
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_subscriptions thead th,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_orders thead th{
  background:var(--mv-purple-50,#F5EDFC);
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  color:var(--mv-purple-deep,#672B91);
  padding:14px 16px;
  text-align:left;
  border:0;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_subscriptions tbody td,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_orders tbody td{
  padding:16px;
  font-size:14px;
  color:var(--mv-ink,#231f20);
  border:0;
  border-top:1px solid var(--mv-line-soft,#EFEDF2);
  vertical-align:middle;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_subscriptions tbody tr:first-child td,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_orders tbody tr:first-child td{border-top:0}

/* status pills — reuse the dashboard pill look, keyed by the cell text via the status cell */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .subscription-status,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .order-status{
  font-weight:600;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .subscription-status mark,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .subscription-status,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .order-status{
  background:transparent;
}
/* wrap the status text in a pill */
body.mv2.woocommerce-account .woocommerce-MyAccount-content td.subscription-status,
body.mv2.woocommerce-account .woocommerce-MyAccount-content td.order-status{
  white-space:nowrap;
}

/* subscription total emphasis */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .subscription-total{
  font-weight:600;
}

/* ===== buttons across the account content → v2 ===== */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button.button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.button{
  display:inline-block;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  padding:10px 18px;
  border-radius:9px;
  background:#fff;
  color:var(--mv-purple-deep,#672B91);
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91);
  border:1px solid var(--mv-line,#E2E2E6);
  text-decoration:none;
  cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease;
  margin:0 6px 6px 0;
  line-height:1.2;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button.button:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.button:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(19,0,38,.12);
  background:var(--mv-purple-50,#F5EDFC);
}
/* primary = View (list) + the switch/adjust link = solid purple */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .subscription-actions a.view,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .order-actions a.view,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.wcs-switch-link{
  background:#8300E9;
  color:#fff;-webkit-text-fill-color:#fff;
  border-color:#8300E9;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .subscription-actions a.view:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .order-actions a.view:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.wcs-switch-link:hover{
  background:var(--mv-purple-deep,#672B91);border-color:var(--mv-purple-deep,#672B91);
  color:#fff;-webkit-text-fill-color:#fff;
}
/* destructive = Cancel = quiet red outline */
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.cancel{
  color:#B23131;-webkit-text-fill-color:#B23131;
  border-color:#EAD3D3;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.cancel:hover{
  background:#FBF2F2;border-color:#E4BcBc;
}

/* ===== view-subscription DETAIL tables → cards ===== */
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  border:1px solid var(--mv-line,#E2E2E6);
  border-radius:14px;
  border-collapse:separate;border-spacing:0;
  overflow:hidden;
  background:#fff;
  width:100%;
  box-shadow:0 2px 10px rgba(19,0,38,.04);
  margin-bottom:8px;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details th,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details th{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:13px;font-weight:600;
  color:var(--mv-purple-deep,#672B91);
  padding:14px 16px;text-align:left;
  border:0;border-top:1px solid var(--mv-line-soft,#EFEDF2);
  background:transparent;
  width:38%;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details td,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details td{
  font-size:14px;color:var(--mv-ink,#231f20);
  padding:14px 16px;border:0;border-top:1px solid var(--mv-line-soft,#EFEDF2);
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details tr:first-child th,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details tr:first-child td,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details thead th{border-top:0}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details thead th{
  background:var(--mv-purple-50,#F5EDFC);text-transform:uppercase;
  font-size:12px;letter-spacing:.06em;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details tfoot th,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details tfoot td{
  font-weight:600;
}
/* the Actions row's buttons sit in a td — let them wrap nicely */
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details td .button{margin-bottom:6px}

/* billing address block on view-subscription */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address{
  background:#fff;border:1px solid var(--mv-line,#E2E2E6);border-radius:14px;
  padding:18px 20px;box-shadow:0 2px 10px rgba(19,0,38,.04);
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address address{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);font-size:14px;
  color:var(--mv-ink,#231f20);font-style:normal;line-height:1.6;border:0;
}

@media (max-width:600px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_subscriptions,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.my_account_orders,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details{font-size:13px}
}
/* status pill — one clean style (CSS can't read text to color-code on the list) */
body.mv2.woocommerce-account .woocommerce-MyAccount-content td.subscription-status .nobr,
body.mv2.woocommerce-account .woocommerce-MyAccount-content td.order-status .nobr{
  display:inline-block;
  padding:4px 12px;border-radius:999px;
  background:var(--mv-purple-50,#F5EDFC);
  color:var(--mv-purple-deep,#672B91);
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
}
/* MV2 ACCOUNT SUBPAGES — SUBSCRIPTIONS END */

/* ============================================================
   MV2 ACCOUNT — CONSOLIDATED  (2026-07-22)
   Single authored block replacing 25 appended patch blocks.
   Breakpoints: phone <=767 | tablet+desktop >=768
   ============================================================ */

/* ---------- shared: identity band + tabs (>=768) ---------- */
@media (min-width:768px){
  body.mv2.woocommerce-account.logged-in .woocommerce{
    display:grid;
    grid-template-columns:280px 1fr;
    column-gap:20px;
    row-gap:0;
  }
  body.mv2.woocommerce-account.logged-in .mv-dash__railtitle{
    grid-column:1 / -1;grid-row:1;
    background:linear-gradient(135deg,#4C1D95 0%,#6D28D9 55%,#7C3AED 100%);
    border-radius:16px 16px 0 0;
    margin:0;padding:26px 28px 18px;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation{
    grid-column:1 / -1;grid-row:2;
    width:100%;background:transparent;border:0;box-shadow:none;padding:0;margin:0;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul{
    display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px;
    background:linear-gradient(135deg,#5B21B6 0%,#6D28D9 100%);
    border:0;border-radius:0 0 16px 16px;
    box-shadow:0 10px 30px rgba(76,29,149,.18);
    padding:0 16px 14px;margin:0 0 18px;
    list-style:none !important;list-style-type:none !important;
  }
  body.mv2.woocommerce-account.logged-in .mv-quick{
    grid-column:1;grid-row:3;align-self:start;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content{
    grid-column:2;grid-row:3;width:100%;
  }
  body.mv2.woocommerce-account.logged-in .mv-logoutbar{
    grid-column:2;grid-row:4;margin-top:16px;
    align-self:start;justify-self:start;
    width:auto;max-width:260px;padding:13px 22px;
  }
  /* tabs */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li{
    margin:0;border:0;list-style:none !important;list-style-type:none !important;order:0;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__btn{
    display:inline-flex;align-items:center;gap:9px;
    padding:10px 18px;border:0;border-radius:10px;
    font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
    font-size:15px;font-weight:600;line-height:1.2;letter-spacing:.01em;
    background:transparent;cursor:pointer;
    white-space:nowrap;text-decoration:none;
    color:rgba(255,255,255,.9);-webkit-text-fill-color:rgba(255,255,255,.9);
    transition:background .12s ease,color .12s ease;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a:hover,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__btn:hover,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.mv-more.is-open .mv-more__btn{
    background:rgba(255,255,255,.14);
    color:#fff;-webkit-text-fill-color:#fff;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.is-active a{
    background:#fff;
    color:var(--mv-purple-deep,#672B91);-webkit-text-fill-color:var(--mv-purple-deep,#672B91);
  }
  /* suppress the design-system's own pseudo icon (we inject .mv-tabico) */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li a::before{
    content:none;display:none;
  }
  /* More dropdown */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.mv-more{
    position:relative;order:20;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__caret{
    font-size:11px;transition:transform .15s ease;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.mv-more.is-open .mv-more__caret{
    transform:rotate(180deg);
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__panel{
    position:absolute;top:calc(100% + 8px);right:0;z-index:40;
    min-width:220px;padding:6px;display:none;
    background:#fff;border:1px solid var(--mv-line,#E2E2E6);border-radius:12px;
    box-shadow:0 8px 28px rgba(19,0,38,.14);
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation li.mv-more.is-open .mv-more__panel{
    display:block;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__list{
    display:flex;flex-direction:column;flex-wrap:nowrap;gap:2px;
    background:transparent;border:0;padding:0;box-shadow:none;border-radius:0;margin:0;
    list-style:none !important;list-style-type:none !important;
  }
  /* dropdown rows sit on WHITE -> dark ink, not the band's white */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__list li a{
    display:flex;align-items:center;gap:10px;width:100%;
    padding:11px 14px;border-radius:8px;text-align:left;
    color:var(--mv-ink,#231f20);-webkit-text-fill-color:var(--mv-ink,#231f20);
    background:transparent;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__list li a:hover{
    background:var(--mv-purple-50,#F5EDFC);
    color:var(--mv-purple-deep,#672B91);-webkit-text-fill-color:var(--mv-purple-deep,#672B91);
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__list li.is-active a{
    background:#8300E9;color:#fff;-webkit-text-fill-color:#fff;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__list li.woocommerce-MyAccount-navigation-link--customer-logout a{
    color:#B23131;-webkit-text-fill-color:#B23131;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation .mv-more__list li.woocommerce-MyAccount-navigation-link--customer-logout a:hover{
    background:#FBF2F2;color:#B23131;-webkit-text-fill-color:#B23131;
  }
  /* FIX: the More button sits on the PURPLE band -> must be white, not dark ink */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation > ul > li.mv-more > .mv-more__btn{
    color:rgba(255,255,255,.9);-webkit-text-fill-color:rgba(255,255,255,.9);
  }
  /* FIX: retire the phone hamburger across the whole tab-bar range */
  body.mv2.woocommerce-account .mv-navtoggle{display:none;}
}

/* ---------- tablet width trim (768-980) ---------- */
@media (min-width:768px) and (max-width:980px){
  body.mv2.woocommerce-account.logged-in .et_pb_row_2{
    max-width:none !important;width:auto !important;margin-left:16px !important;margin-right:16px !important;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce{max-width:none;}
}

/* ---------- desktop panel width ---------- */
@media (min-width:981px){
  body.mv2.woocommerce-account.logged-in .et_pb_row_2{
    max-width:1392px !important;width:calc(100% - 48px) !important;margin-left:auto !important;margin-right:auto !important;
    padding-top:4px !important;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce{max-width:1392px;}
}

/* ---------- header identity (all widths) ---------- */
body.mv2.woocommerce-account.logged-in .mv-acct-id{
  display:flex;align-items:center;gap:16px;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__av{flex:0 0 auto;line-height:0;}
body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar,
body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-initial,
body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-img{
  width:100%;height:100%;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-initial{
  font-size:46px;border:0;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-edit{width:22px;height:22px;}
body.mv2.woocommerce-account.logged-in .mv-acct-id__name{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:30px;font-weight:700;line-height:1.1;color:#fff;letter-spacing:.01em;
}
/* the old welcome card is replaced by the header identity */
body.mv2.woocommerce-account.logged-in .mv-dash__hero{display:none;}

/* ---------- tab icons (all widths) ---------- */
body.mv2.woocommerce-account .woocommerce-MyAccount-navigation .mv-tabico,
body.mv2.woocommerce-account .mv-quick .mv-tabico,
body.mv2.woocommerce-account .mv-sheet .mv-tabico{
  width:18px;height:18px;flex:0 0 18px;
}

/* ---------- Quick Links aside ---------- */
body.mv2.woocommerce-account.logged-in .mv-quick{
  background:#fff;border:1px solid var(--mv-line,#E2E2E6);border-radius:16px;
  padding:20px 16px 16px;box-shadow:0 2px 12px rgba(19,0,38,.05);
}
body.mv2.woocommerce-account.logged-in .mv-quick__head{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:13px;font-weight:700;letter-spacing:.12em;
  color:var(--mv-purple,#8300E9);padding:0 8px 12px;
}
body.mv2.woocommerce-account.logged-in .mv-quick__list,
body.mv2.woocommerce-account.logged-in .mv-quick__list li,
body.mv2.woocommerce-account.logged-in .mv-quick__item{
  list-style:none !important;list-style-type:none !important;
}
body.mv2.woocommerce-account.logged-in .mv-quick__item::marker{content:"";}
body.mv2.woocommerce-account.logged-in .mv-quick__list{
  margin:0;padding:0;display:flex;flex-direction:column;gap:2px;
}
body.mv2.woocommerce-account.logged-in .mv-quick__item a{
  display:flex;align-items:center;gap:12px;
  padding:11px 10px;border-radius:10px;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:15px;font-weight:600;line-height:1.2;
  color:var(--mv-ink,#231f20);text-decoration:none;
  transition:background .12s ease,color .12s ease;
}
body.mv2.woocommerce-account.logged-in .mv-quick__item a:hover,
body.mv2.woocommerce-account.logged-in .mv-quick__item.is-active a{
  background:var(--mv-purple-50,#F5EDFC);color:var(--mv-purple-deep,#672B91);
}
body.mv2.woocommerce-account.logged-in .mv-quick__item .mv-tabico{color:var(--mv-purple,#8300E9);}
body.mv2.woocommerce-account.logged-in .mv-quick__chev{
  margin-left:auto;font-size:19px;line-height:1;color:#b9b3c0;
}
body.mv2.woocommerce-account.logged-in .mv-quick__help{
  margin-top:16px;padding:16px;border-radius:12px;
  background:var(--mv-purple-50,#F5EDFC);
  display:flex;flex-direction:column;gap:3px;
}
body.mv2.woocommerce-account.logged-in .mv-quick__help-t{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:16px;font-weight:700;color:var(--mv-purple-deep,#672B91);
}
body.mv2.woocommerce-account.logged-in .mv-quick__help-s{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13px;color:#5b5560;margin-bottom:10px;
}
body.mv2.woocommerce-account.logged-in .mv-quick__help-btn{
  display:flex;align-items:center;justify-content:space-between;
  background:var(--mv-purple,#8300E9);
  color:#fff;-webkit-text-fill-color:#fff;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:14px;font-weight:600;letter-spacing:.02em;
  padding:11px 14px;border-radius:9px;text-decoration:none;
}
body.mv2.woocommerce-account.logged-in .mv-quick__help-btn:hover{
  background:var(--mv-purple-deep,#672B91);
  color:#fff;-webkit-text-fill-color:#fff;
}

/* ---------- logout bar ---------- */
body.mv2.woocommerce-account.logged-in .mv-logoutbar{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:#fff;border:1px solid var(--mv-line,#E2E2E6);border-radius:14px;
  padding:13px 22px;text-decoration:none;line-height:1.2;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:15px;font-weight:600;letter-spacing:.02em;
  color:#B23131;-webkit-text-fill-color:#B23131;
  box-shadow:0 2px 12px rgba(19,0,38,.05);
  transition:background .12s ease;
}
body.mv2.woocommerce-account.logged-in .mv-logoutbar:hover{
  background:#FBF2F2;color:#B23131;-webkit-text-fill-color:#B23131;
}
body.mv2.woocommerce-account.logged-in .mv-logoutbar .mv-tabico{color:#B23131;}
body.mv2.woocommerce-account.logged-in .mv-logoutbar{white-space:nowrap;}
body.mv2.woocommerce-account.logged-in .mv-logoutbar .mv-tablabel{line-height:1.2;display:inline-block;white-space:nowrap;}

/* ---------- header account dot (hidden site-wide on v2) ---------- */
body.mv2 .mv-navbtn__dot{display:none;}

/* ---------- PHONE (<=767) ---------- */
.mv-btab, .mv-sheet, .mv-scrim{display:none;}

@media (max-width:767px){
  /* the tab bar + inline nav + hamburger are all replaced by the bottom bar */
  body.mv2.woocommerce-account .mv-navtoggle,
  body.mv2.woocommerce-account .woocommerce-MyAccount-navigation,
  body.mv2.woocommerce-account.logged-in .mv-logoutbar{
    display:none;
  }
  /* FIX: hide the whole Quick Links card on phone, not just its list */
  body.mv2.woocommerce-account.logged-in .mv-quick{display:none;}

  body.mv2.woocommerce-account.logged-in .mv-acct-id{gap:12px;}
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar,
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-initial,
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-img{
    width:44px;height:44px;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-initial{font-size:19px;}
  body.mv2.woocommerce-account.logged-in .mv-acct-id__name{font-size:22px;}

  /* bottom tab bar */
  body.mv2.woocommerce-account.logged-in .mv-btab{
    display:flex;
    position:fixed;left:0;right:0;bottom:0;z-index:900;
    background:#fff;border-top:1px solid var(--mv-line,#E2E2E6);
    box-shadow:0 -4px 18px rgba(19,0,38,.08);
    padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));
  }
  body.mv2.woocommerce-account.logged-in .mv-btab__item{
    flex:1 1 0;
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
    padding:6px 2px;border:0;background:transparent;cursor:pointer;text-decoration:none;
    color:#6b6472;-webkit-text-fill-color:#6b6472;
  }
  body.mv2.woocommerce-account.logged-in .mv-btab__item .mv-tabico{
    width:22px;height:22px;flex:0 0 22px;
  }
  body.mv2.woocommerce-account.logged-in .mv-btab__lbl{
    font-family:var(--mv-font-body,'Open Sans',sans-serif);
    font-size:11px;font-weight:600;line-height:1;letter-spacing:.01em;
  }
  body.mv2.woocommerce-account.logged-in .mv-btab__item.is-active{
    color:var(--mv-purple,#8300E9);-webkit-text-fill-color:var(--mv-purple,#8300E9);
  }
  body.mv2.woocommerce-account.logged-in .mv-btab__dots{
    display:flex;align-items:center;justify-content:center;gap:3px;height:22px;
  }
  body.mv2.woocommerce-account.logged-in .mv-btab__dots i{
    width:4px;height:4px;border-radius:50%;background:currentColor;display:block;
  }
  body.mv2.woocommerce-account.logged-in .et_pb_row_2{padding-bottom:78px;}

  /* menu sheet */
  body.mv2.woocommerce-account.logged-in .mv-scrim{
    display:block;position:fixed;inset:0;z-index:1000;
    background:rgba(19,0,38,.45);
    opacity:0;pointer-events:none;transition:opacity .18s ease;
  }
  body.mv2.woocommerce-account.logged-in.mv-sheet-open .mv-scrim{
    opacity:1;pointer-events:auto;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet{
    display:flex;flex-direction:column;
    position:fixed;top:0;right:0;bottom:0;z-index:1001;
    width:86%;max-width:340px;
    background:#fff;overflow-y:auto;
    box-shadow:-8px 0 30px rgba(19,0,38,.18);
    transform:translateX(100%);
    transition:transform .22s ease;
  }
  body.mv2.woocommerce-account.logged-in.mv-sheet-open .mv-sheet{
    transform:translateX(0);
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__head{
    display:flex;align-items:flex-start;gap:12px;
    padding:20px 16px 16px;border-bottom:1px solid var(--mv-line,#E2E2E6);
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__id{
    display:flex;align-items:center;gap:12px;flex:1 1 auto;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__av .mv-dash__avatar,
  body.mv2.woocommerce-account.logged-in .mv-sheet__av .mv-dash__avatar-initial,
  body.mv2.woocommerce-account.logged-in .mv-sheet__av .mv-dash__avatar-img{
    width:44px;height:44px;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__av .mv-dash__avatar-initial{font-size:18px;}
  body.mv2.woocommerce-account.logged-in .mv-sheet__av .mv-dash__avatar-edit{display:none;}
  body.mv2.woocommerce-account.logged-in .mv-sheet__who{
    display:flex;flex-direction:column;gap:2px;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__name{
    font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
    font-size:17px;font-weight:700;color:var(--mv-ink,#231f20);line-height:1.15;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__profile{
    font-family:var(--mv-font-body,'Open Sans',sans-serif);
    font-size:13px;font-weight:600;color:var(--mv-purple,#8300E9);text-decoration:none;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__close{
    flex:0 0 auto;border:0;background:transparent;cursor:pointer;
    font-size:20px;line-height:1;color:#6b6472;padding:4px 2px;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__list,
  body.mv2.woocommerce-account.logged-in .mv-sheet__list li{
    list-style:none !important;list-style-type:none !important;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__list{
    margin:0;padding:8px;display:flex;flex-direction:column;gap:2px;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__item a{
    display:flex;align-items:center;gap:12px;
    padding:13px 10px;border-radius:10px;text-decoration:none;
    font-family:var(--mv-font-body,'Open Sans',sans-serif);
    font-size:15px;font-weight:600;line-height:1.2;
    color:var(--mv-ink,#231f20);
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__item .mv-tabico{
    width:19px;height:19px;flex:0 0 19px;color:var(--mv-purple,#8300E9);
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__chev{
    margin-left:auto;font-size:19px;line-height:1;color:#b9b3c0;
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__item.is-active a{
    background:var(--mv-purple-50,#F5EDFC);color:var(--mv-purple-deep,#672B91);
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__item--customer-logout{
    margin-top:8px;padding-top:8px;border-top:1px solid var(--mv-line,#E2E2E6);
  }
  body.mv2.woocommerce-account.logged-in .mv-sheet__item--customer-logout a,
  body.mv2.woocommerce-account.logged-in .mv-sheet__item--customer-logout .mv-tabico{
    color:#B23131;
  }
}
/* scroll-lock on <html> so it never clips the off-canvas sheet */
html:has(body.mv-sheet-open){overflow:hidden;}
/* MV2 GLANCE 4UP — the At-a-Glance strip carries 4 tiles now (added On Track) */
@media (min-width:981px){
  body.mv2.woocommerce-account.logged-in .mv-dash__stats{grid-template-columns:repeat(4,1fr);}
}
@media (min-width:600px) and (max-width:980px){
  body.mv2.woocommerce-account.logged-in .mv-dash__stats{grid-template-columns:repeat(2,1fr);}
}

/* MV2 HIDE AFFILIATE - Matt: hide it entirely, like Downloads */
body.mv2.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--downloads,
body.mv2.woocommerce-account .mv-quick__item--downloads,
body.mv2.woocommerce-account .mv-sheet__item--downloads,
body.mv2.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--coupon-affiliate,
body.mv2.woocommerce-account .mv-quick__item--coupon-affiliate,
body.mv2.woocommerce-account .mv-sheet__item--coupon-affiliate{display:none;}

/* MV2 ACCOUNT FORMS — Addresses / Payment methods / Account details */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content label{
  display:block;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13px;font-weight:600;line-height:1.3;
  letter-spacing:.02em;
  color:#5b5560;
  margin:0 0 6px;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content label .required{
  color:#B23131;text-decoration:none;border:0;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="text"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="email"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="tel"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="password"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content select,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .select2-selection{
  width:100%;
  height:auto;min-height:48px;
  background:#fff !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:10px !important;
  padding:12px 14px !important;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:15px;line-height:1.3;
  color:var(--mv-ink,#231f20);
  box-shadow:none;
  transition:border-color .12s ease,box-shadow .12s ease;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="text"]:focus,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="email"]:focus,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="tel"]:focus,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="password"]:focus,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content select:focus{
  outline:none;
  border-color:var(--mv-purple,#8300E9);
  box-shadow:0 0 0 3px rgba(131,0,233,.12);
}
/* field rows sit in a tidy stack with breathing room */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content p.woocommerce-form-row{
  margin:0 0 16px;padding:0;
}
/* fieldset (Password change) reads as a sub-card */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content fieldset{
  margin:24px 0 0;padding:18px 18px 4px;
  border:1px solid var(--mv-line,#E2E2E6);border-radius:14px;
  background:#FCFBFD;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content fieldset legend{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:16px;font-weight:700;letter-spacing:.01em;
  color:var(--mv-purple-deep,#672B91);
  padding:0 8px;width:auto;border:0;margin:0 0 0 -8px;
}
/* the small "this will be your username" hints */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content em,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .description{
  display:block;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:12px;font-style:normal;color:#7a7480;margin-top:5px;
}
/* FIX: the submit button was inheriting the tab bar's white active-pill (white on white) */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button[type="submit"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="submit"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > p > a.button,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > a.button{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--mv-purple,#8300E9) !important;
  color:#fff !important;-webkit-text-fill-color:#fff !important;
  border:0 !important;border-radius:9px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:15px;font-weight:600;letter-spacing:.02em;line-height:1.2;
  padding:13px 26px !important;margin-top:8px;
  cursor:pointer;text-decoration:none;
  transition:background .12s ease;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button[type="submit"]:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="submit"]:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > p > a.button:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > a.button:hover{
  background:var(--mv-purple-deep,#672B91) !important;
  color:#fff !important;-webkit-text-fill-color:#fff !important;
}
/* two-up rows on wider screens */
@media (min-width:768px){
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row-first,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row-last{
    width:calc(50% - 8px);float:none;display:inline-block;vertical-align:top;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .form-row-first{margin-right:16px;}
}

/* MV2 ACCOUNT STATUS PILLS START */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-apill{
  display:inline-block;
  padding:4px 12px;border-radius:999px;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  line-height:1.35;white-space:nowrap;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-apill--green{background:#E7F6EC;color:#18884A;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-apill--amber{background:#FCF3E1;color:#9A6A12;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-apill--red{background:#FBEDED;color:#B23131;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-apill--neutral{background:var(--mv-purple-50,#F5EDFC);color:var(--mv-purple-deep,#672B91);}
/* MV2 ACCOUNT STATUS PILLS END */

/* MV2 ACCOUNT ORDERS FIX START */
/* Orders table uses __cell-order-status / __cell-order-actions (not the bare .order-status). Extend the pill + primary-View styling to it. */
body.mv2.woocommerce-account .woocommerce-MyAccount-content td.woocommerce-orders-table__cell-order-status{
  white-space:nowrap;
}
/* View = primary (solid purple); Print/Download invoice stay outline secondary */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.view{
  background:#8300E9;
  color:#fff;-webkit-text-fill-color:#fff;
  border-color:#8300E9;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions a.view:hover{
  background:var(--mv-purple-deep,#672B91);border-color:var(--mv-purple-deep,#672B91);
  color:#fff;-webkit-text-fill-color:#fff;
}
/* MV2 ACCOUNT ORDERS FIX END */

/* MV2 ACCOUNT TWEAKS 2026-07-22 — no More button on desktop, Log out in Quick Links,
   fieldset alignment, display-name + email share a row */
@media (min-width:768px){
  /* the tab bar keeps ONLY the 5 primary tabs; the rest live in Quick Links */
  body.mv2.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--subscription-scheduler,
  body.mv2.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--edit-account,
  body.mv2.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout{
    display:none;
  }
  /* the standalone logout bar is redundant now that Log out sits in Quick Links */
  body.mv2.woocommerce-account.logged-in .mv-logoutbar{display:none;}
}
/* Log out inside Quick Links: separated + red */
body.mv2.woocommerce-account.logged-in .mv-quick__item--customer-logout{
  margin-top:8px;padding-top:8px;border-top:1px solid var(--mv-line,#E2E2E6);
}
body.mv2.woocommerce-account.logged-in .mv-quick__item--customer-logout a,
body.mv2.woocommerce-account.logged-in .mv-quick__item--customer-logout .mv-tabico{
  color:#B23131;
}
body.mv2.woocommerce-account.logged-in .mv-quick__item--customer-logout a:hover{
  background:#FBF2F2;color:#B23131;
}
/* FIX: the Password-change fieldset had 18px side padding, so its inputs started 19px
   right of every other field. Zero the sides; keep the card feel via a top rule. */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content fieldset{
  padding:18px 0 4px;
  border:0;
  border-top:1px solid var(--mv-line,#E2E2E6);
  border-radius:0;
  background:transparent;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content fieldset legend{
  padding:0;margin:0 0 4px;
}
/* display name + email share one row (they ship as full-width rows with .clear between) */
@media (min-width:768px){
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form .woocommerce-form-row--wide:has(#account_display_name),
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form .woocommerce-form-row--wide:has(#account_email){
    width:calc(50% - 8px);
    display:block;float:left;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form .woocommerce-form-row--wide:has(#account_display_name){
    margin-right:16px;
  }
  /* the .clear div between them would force a break — neutralise just that one */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form .clear:has(+ .woocommerce-form-row--wide #account_email){
    display:none;
  }
}

/* ============ MV2 ACCOUNT — CONSOLIDATED END ============ */

@media (min-width:768px){
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form fieldset{clear:both;}
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form p.form-row:not(.form-row-first):not(.form-row-last):not(:has(#account_display_name)):not(:has(#account_email)){clear:both;}
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form p:has(#account_display_name),
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content form p:has(#account_email){clear:none;}
}

/* MV2 ACCOUNT TOP GAP - match tablet's tighter offset under the header */
@media (min-width:981px){
  body.mv2.woocommerce-account.logged-in .et_pb_row_2{margin-top:-16px !important;}
}

/* MV2 ALL LINKS IN QUICK LINKS — tab bar retired on desktop/tablet (Matt 2026-07-22) */
@media (min-width:768px){
  /* the horizontal tab bar is gone; Quick Links is the only account nav */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-navigation{
    display:none;
  }
  /* the purple band now carries just the identity, so close its bottom corners */
  body.mv2.woocommerce-account.logged-in .mv-dash__railtitle.mv-acct-head{
    border-radius:16px;
    margin-bottom:18px;
  }
  /* content + aside move up a row now that the nav row is empty */
  body.mv2.woocommerce-account.logged-in .mv-quick{grid-row:2;}
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content{grid-row:2;}
  body.mv2.woocommerce-account.logged-in .mv-logoutbar{grid-row:3;}
}
/* Matt's verified order, applied to the cloned Quick Links items */
body.mv2.woocommerce-account.logged-in .mv-quick__list{display:flex;flex-direction:column;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--dashboard{order:1;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--orders{order:2;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--subscriptions{order:3;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--subscription-scheduler{order:4;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--edit-address{order:5;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--payment-methods{order:6;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--edit-account{order:7;}
body.mv2.woocommerce-account.logged-in .mv-quick__item--customer-logout{order:8;}
/* the active page stands out in the list now that there are no tabs */
body.mv2.woocommerce-account.logged-in .mv-quick__item.is-active a{
  background:var(--mv-purple-50,#F5EDFC);
  color:var(--mv-purple-deep,#672B91);
  font-weight:700;
}

/* MV2 DASH TWEAKS 2026-07-22b — card order, hide shortcuts, Welcome eyebrow, brand right */

/* 1) card order: Latest Order, Total Orders, Active Subscriptions, Stored Addresses */
body.mv2.woocommerce-account.logged-in .mv-dash__stats{display:grid;}
body.mv2.woocommerce-account.logged-in .mv-dash__stat--ontrack{order:1;}
body.mv2.woocommerce-account.logged-in .mv-dash__stat--orders{order:2;}
body.mv2.woocommerce-account.logged-in .mv-dash__stat--sub{order:3;}
body.mv2.woocommerce-account.logged-in .mv-dash__stat--address{order:4;}

/* 2) Account Shortcuts is redundant on tablet/desktop — Quick Links covers it */
@media (min-width:768px){
  body.mv2.woocommerce-account.logged-in .mv-dash__shortcuts{display:none;}
}

/* 3+4) identity band: avatar + (Welcome / name) on the left, "my Monavie." right-aligned.
   The band has 28px side padding, so the brand's right inset already matches the
   avatar's left inset — space-between does the rest. */
body.mv2.woocommerce-account.logged-in .mv-acct-id{
  display:flex;align-items:center;gap:16px;
  width:100%;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__who{
  display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__eyebrow{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13px;font-weight:600;line-height:1.2;letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__brand{
  margin-left:auto;
  align-self:center;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:22px;font-weight:700;line-height:1.1;letter-spacing:.01em;
  color:rgba(255,255,255,.92);
  white-space:nowrap;
}
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .mv-acct-id__eyebrow{font-size:11px;}
  /* the brand would crowd the name on a phone */
  body.mv2.woocommerce-account.logged-in .mv-acct-id__brand{display:none;}
}

/* MV2 DASH PAIR ROW 2026-07-22 — Recent Orders + Subscription Overview share a row on desktop.
   Hiding Account Shortcuts left .mv-dash__bottom as a 2-col grid with an empty
   second column, so Subscription Overview was stranded at half width. */
@media (min-width:1200px){
  /* the dash column becomes a 2-col grid so the two cards can sit side by side */
  body.mv2.woocommerce-account.logged-in .mv-dash{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:22px;
    align-items:start;
  }
  /* full-width rows stay full width */
  body.mv2.woocommerce-account.logged-in .mv-dash > .mv-dash__hero,
  body.mv2.woocommerce-account.logged-in .mv-dash > .mv-dash__stats{
    grid-column:1 / -1;
  }
  /* Recent Orders takes the left cell, the bottom wrapper the right */
  body.mv2.woocommerce-account.logged-in .mv-dash > .mv-dash__recent{
    grid-column:1;
  }
  body.mv2.woocommerce-account.logged-in .mv-dash > .mv-dash__bottom{
    grid-column:2;
    display:block;
  }
  /* with Shortcuts hidden, Subscription Overview fills its wrapper */
  body.mv2.woocommerce-account.logged-in .mv-dash__bottom > .mv-dash__subov{
    width:100%;
  }
}
/* below 1200 (incl. tablet) everything stacks full width, as Matt asked */
@media (max-width:1199px){
  body.mv2.woocommerce-account.logged-in .mv-dash__bottom{
    grid-template-columns:1fr;
  }
}

/* MV2 DASH BUTTON CLEANUP 2026-07-22 — brand colours on every dashboard link/button.
   ROOT CAUSE: Divi's module rule `.et_pb_text:has(> .et_pb_text_inner > p > strong > a).et_pb_text a{color:#5430CE!important}`
   was overriding EVERY link in the dashboard, so all of them rendered a blue-violet
   that isn't a Monavie colour. Our rules lost purely on !important. */

/* --- links inside stat cards, recent orders, shortcuts --- */
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__stat-link,
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__viewall,
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__shortcut{
  color:var(--mv-purple,#8300E9) !important;
  -webkit-text-fill-color:var(--mv-purple,#8300E9) !important;
  text-decoration:none !important;
}
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__stat-link:hover,
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__viewall:hover,
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__shortcut:hover{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}

/* --- the order rows read as dark text, not links --- */
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__order{
  color:var(--mv-ink,#231f20) !important;
  -webkit-text-fill-color:var(--mv-ink,#231f20) !important;
  text-decoration:none !important;
}
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__order:hover{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}

/* --- the ghost button had a correct purple border but wrong-purple text --- */
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__btn,
body.mv2.woocommerce-account.logged-in .mv-dash button.mv-dash__btn{
  color:var(--mv-purple,#8300E9) !important;
  -webkit-text-fill-color:var(--mv-purple,#8300E9) !important;
  border-color:var(--mv-purple,#8300E9) !important;
  text-decoration:none !important;
}
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__btn:hover,
body.mv2.woocommerce-account.logged-in .mv-dash button.mv-dash__btn:hover{
  background:var(--mv-purple,#8300E9) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-color:var(--mv-purple,#8300E9) !important;
}

/* --- kill Divi's hover arrow on any dashboard button/link --- */
body.mv2.woocommerce-account.logged-in .mv-dash a::before,
body.mv2.woocommerce-account.logged-in .mv-dash a::after,
body.mv2.woocommerce-account.logged-in .mv-dash button::before,
body.mv2.woocommerce-account.logged-in .mv-dash button::after{
  content:none !important;
  display:none !important;
}
/* the avatar's own edit badge is a real element, not a Divi pseudo — keep it */
body.mv2.woocommerce-account.logged-in .mv-dash .mv-dash__avatar-edit{
  display:flex !important;
}

/* MV2 KILL DIVI BUTTON ARROW (account-wide) 2026-07-22
   Divi puts an ETmodules glyph "5" (right-arrow) in ::before/::after on .button,
   opacity:0 at rest, fading in on hover — and the ::after still reserves ~32px of
   width even when invisible. The dashboard rule only covered .mv-dash, so every
   sub-page button (View / Print invoice / Download invoice / Cancel …) still had it. */
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button::after,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.button::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.button::after,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button::after,
body.mv2.woocommerce-account .woocommerce-MyAccount-content input[type="submit"]::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content input[type="submit"]::after{
  content:none !important;
  display:none !important;
  opacity:0 !important;
  width:0 !important;
  margin:0 !important;
}

/* MV2 SUBSCRIPTION ACTIONS 2026-07-22 — heading for the details card + an actions
   row under the totals card, with Adjust Your Plan styled like the Actions buttons. */

/* heading above the details table (it was the only card without one) */
body.mv2.woocommerce-account .woocommerce-MyAccount-content h2.mv-subhead{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:20px;font-weight:700;line-height:1.2;
  color:var(--mv-ink,#231f20);
  margin:0 0 12px;
}

/* the new actions bar under the totals table — mirrors the Actions row above */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-subacts{display:none;}
/* the Actions row inside the totals card, mirroring the details card's Actions row */
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-subacts-row td{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-subacts-row th{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14px !important;font-weight:500 !important;letter-spacing:normal !important;text-transform:none !important;
  color:var(--mv-ink,#231f20);
}
/* match the Actions buttons exactly: white / deep purple / hairline border */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-subacts a.mv-subacts__btn,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.wcs-switch-link.mv-subacts__btn{
  display:inline-block;
  background:#fff !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:9px !important;
  padding:10px 18px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:13px;font-weight:600;line-height:1.2;
  letter-spacing:.02em;text-transform:uppercase;text-decoration:none !important;
  transition:background .12s ease,border-color .12s ease;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-subacts a.mv-subacts__btn:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.wcs-switch-link.mv-subacts__btn:hover{
  background:var(--mv-purple-50,#F5EDFC) !important;
  border-color:var(--mv-purple,#8300E9) !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}
/* no Divi arrow on it */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-subacts a::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-subacts a::after{
  content:none !important;display:none !important;
}

/* MV2 NARROW PHONE FIX 2026-07-22 — content was clipping on phones under 375px.
   `.woocommerce` is display:flex, and flex items default to min-width:auto, so
   `.woocommerce-MyAccount-content` refused to shrink below its content width —
   it rendered 343px inside a 236px parent at 320px viewport, pushing the order
   tables ~55px past the screen edge (values like "#7781" / "July 21, 2026" /
   "$130.00 for 1 item" were cut off on the right). */
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .woocommerce,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content,
  body.mv2.woocommerce-account.logged-in .mv-dash,
  body.mv2.woocommerce-account.logged-in .mv-dash__recent,
  body.mv2.woocommerce-account.logged-in .mv-dash__bottom{
    min-width:0;
    max-width:100%;
  }
  /* tables must fit the card, not their natural content width */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table.subscription_details,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table.order_details{
    width:100%;
    max-width:100%;
    table-layout:fixed;
  }
  /* let long values wrap instead of forcing the table wider */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table td,
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table th{
    overflow-wrap:anywhere;
    word-break:normal;
  }
  /* the responsive-table label + value share the row; keep both readable */
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive tbody td{
    padding-left:12px;
    padding-right:12px;
  }
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content table.shop_table_responsive tbody td::before{
    max-width:52%;
  }
}

/* MV2 PHONE IDENTITY BAND 2026-07-22 — the purple gradient was only defined inside
   @media(min-width:768px), so on phone the band had NO background while the text
   stayed white: "WELCOME / Dashboard Tester" rendered white-on-pale and was
   effectively unreadable. Give it the same card treatment at phone width. */
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .mv-dash__railtitle{
    background:linear-gradient(135deg,#4C1D95 0%,#6D28D9 55%,#7C3AED 100%);
    border-radius:16px;
    padding:18px 18px 16px;
    margin:0 0 16px;
    box-shadow:0 6px 20px rgba(76,29,149,.18);
    width:100%;
    flex:0 0 auto;
    align-self:stretch;
    box-sizing:border-box;
  }
  /* keep the identity readable and comfortably inset */
  body.mv2.woocommerce-account.logged-in .mv-dash__railtitle .mv-acct-id{
    gap:12px;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__name{
    color:#fff;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__eyebrow{
    color:rgba(255,255,255,.78);
  }
}

/* MV2 HEADER NARROW FIX 2026-07-22 — the header overflowed on phones under ~360px.
   At 320px the content box is 300px but the row needed 334: a 150px wordmark +
   12px gap + a 172px nav (3 x 48px buttons + 2 x 8px gaps). Nothing shrank, so
   the cart button sat 30px past the screen edge and the whole page scrolled
   sideways. This is the HEADER, not the homepage content — it affects every page.
   Fix takes the space out of the NAV (padding/gaps/button width), not the logo:
   shrinking the wordmark to fit would have left it ~116px wide / 11px tall,
   unreadable for a ~65yo buyer. Tap targets stay at 44px (WCAG minimum). */
@media (max-width:400px){
  body.mv2 .mv-head__in{
    padding-left:10px;
    padding-right:10px;
    gap:6px;
  }
  body.mv2 .mv-nav{
    gap:2px;
  }
  body.mv2 .mv-navbtn,
  body.mv2 .mv-cartbtn{
    width:44px;
    min-width:44px;
  }
}

/* MV2 WIDE ACTION ROWS 2026-07-22 — Matt: drop the "Actions" wording and keep
   Cancel / Suspend / Add payment / Renew now on ONE row.
   The 4 buttons need ~412px (388 of button + 3 gaps + inline-block whitespace) but
   the value cell alone is 328, so they wrapped to 2 rows. Hiding the label cell and
   spanning both columns gives ~454px — one row with room to spare. Buttons switch
   from inline-block+margins to a nowrap flex row so they can't re-wrap. */
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow .mv-actrow__label{
  display:none;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td{
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:6px;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td button{
  margin:0;
  white-space:nowrap;
  flex:0 0 auto;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details{
  width:100%;
  max-width:100%;
  table-layout:fixed;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td{
  flex-wrap:wrap;
  row-gap:6px;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.subscription_details,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.order_details{
  width:100%;
  max-width:100%;
  table-layout:fixed;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td{
  flex-wrap:wrap;
  row-gap:6px;
}
/* below tablet there isn't room for four across — let them wrap again */
@media (max-width:767px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td{
    flex-wrap:wrap;
  }
}

/* MV2 ACTROW TIGHTEN 2026-07-22 - four action buttons on ONE row at >=768.
   Buttons were 388px in a 423px usable cell; trimming cell padding 16->10 and
   button padding 18->12 brings them to 341px, comfortably one row. */
@media (min-width:768px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td{
    flex-wrap:nowrap;
    padding-left:10px;
    padding-right:10px;
    gap:5px;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.button,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td button{
    padding-left:12px;
    padding-right:12px;
  }
}

/* MV2 RELATED ORDERS ACTION ROW 2026-07-22 — Matt: on tablet, nest View / Print /
   Download in their own row at the bottom of the card.
   At 834 the responsive table becomes real columns and the actions cell gets only
   138px, so 236px of buttons stacked into a narrow 3-high column. Making the row a
   grid and letting the actions cell span the full width gives them 455px — one row.
   Scoped 768-1199: below that the table is already stacked (phone), above it the
   content column is wide enough for the normal 5-column layout. */
@media (min-width:768px) and (max-width:1199px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive{
    width:100%;
    max-width:100%;
  }
  /* the Actions header no longer sits above a column */
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive thead th.woocommerce-orders-table__header-order-actions,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive thead th[class*="actions"]{
    display:none;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive thead tr{
    display:grid;
    grid-template-columns:0.8fr 1.1fr 1fr 1.4fr;
    column-gap:8px;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive thead th{
    min-width:0;
    padding-left:8px;
    padding-right:8px;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody tr{
    display:grid;
    grid-template-columns:0.8fr 1.1fr 1fr 1.4fr;
    column-gap:8px;
    align-items:start;
    width:100%;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody td{
    min-width:0;
    padding-top:14px;
    padding-bottom:6px;
    padding-left:8px;
    padding-right:8px;
  }
  /* the buttons get the full card width, on their own row, under a hairline */
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody td[class*="actions"]{
    grid-column:1 / -1;
    display:flex;
    flex-wrap:nowrap;
    gap:6px;
    border-top:1px solid var(--mv-line,#E2E2E6);
    padding-top:12px;
    margin-top:4px;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody td[class*="actions"] a.button{
    margin:0;
    white-space:nowrap;
    flex:0 0 auto;
  }
}

/* MV2 SUBACT BUTTON ORDER 2026-07-22 - Matt: Renew Now, Add Payment, Suspend, Cancel */
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.subscription_renewal_early,
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.subscription_renew,
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.subscription_renew_early{order:1;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.change_payment_method{order:2;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.suspend{order:3;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.cancel{order:4;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-actrow > td a.reactivate{order:3;}

/* MV2 RELATED ORDERS NARROW TABLET 2026-07-22 - 4 columns don't fit under ~830px */
@media (min-width:768px) and (max-width:829px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive thead{display:none;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody tr{
    grid-template-columns:1fr 1fr;
    column-gap:12px;
    row-gap:0;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody td::before{
    display:block;
    content:attr(data-title);
    font-size:11px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    opacity:.62;
    margin-bottom:2px;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody td[class*="actions"]::before{content:none;display:none;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table_responsive tbody td{
    padding-top:10px;
    padding-bottom:6px;
  }
}

/* MV2 IDENTITY BANNER 2026-07-22 -- rebuilt to Matt's mockups.
   Desktop/tablet: ringed avatar + name/role/member-since on the left, a divided
   facts column (Last order / Next shipment) on the right, brand top-right.
   Phone: avatar+name pair across the top, facts as full-width label/value rows,
   brand bottom-right. Role label = highest role (Administrator > Subscriber > Customer). */

body.mv2.woocommerce-account.logged-in .mv-acct-id{
  display:grid;
  grid-template-columns:auto 1fr auto;
  grid-template-areas:"brand brand brand" "av who facts";
  row-gap:4px;
  align-items:center;
  column-gap:22px;
  width:100%;
  position:relative;
}

/* --- avatar with the mockup's ring --- */
body.mv2.woocommerce-account.logged-in .mv-acct-id__av{
  grid-area:av;
  position:relative;
  display:flex;align-items:center;justify-content:center;
  width:104px;height:104px;
  border-radius:50%;
  box-shadow:0 0 0 3px rgba(255,255,255,.28);
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__av img,
body.mv2.woocommerce-account.logged-in .mv-acct-id__av svg,
body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar{
  width:104px;height:104px;border-radius:50%;
}

/* --- name / role / member-since --- */
body.mv2.woocommerce-account.logged-in .mv-acct-id__who{
  grid-area:who;
  display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:0;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__name{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:34px;font-weight:700;line-height:1.08;letter-spacing:.005em;
  color:#fff;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__role{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:16px;font-weight:400;line-height:1.2;
  color:rgba(255,255,255,.82);
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__meta{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:15px;line-height:1.2;
  color:rgba(255,255,255,.72);
  margin-top:3px;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__dot{color:rgba(255,255,255,.45);}
body.mv2.woocommerce-account.logged-in .mv-acct-id__status{
  display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.88);
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__led{
  width:9px;height:9px;border-radius:50%;
  background:#22C55E;
  box-shadow:0 0 0 3px rgba(34,197,94,.22);
  flex:0 0 auto;
}

/* --- right-hand facts column --- */
body.mv2.woocommerce-account.logged-in .mv-acct-id__facts{
  grid-area:facts;
  display:flex;flex-direction:column;gap:14px;
  padding-left:26px;
  border-left:1px solid rgba(255,255,255,.22);
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__fact{
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-areas:"ico lbl" "ico val";
  column-gap:12px;
  align-items:center;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__ico{
  grid-area:ico;
  width:22px;height:22px;
  color:rgba(255,255,255,.85);
  align-self:center;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__factlbl{
  grid-area:lbl;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13px;line-height:1.25;
  color:rgba(255,255,255,.7);
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__factval{
  grid-area:val;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:16px;font-weight:700;line-height:1.25;
  color:#fff;
  white-space:nowrap;
}

/* --- brand --- */
body.mv2.woocommerce-account.logged-in .mv-acct-id__brand{
  grid-area:brand;
  justify-self:end;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:24px;font-weight:700;line-height:1.1;
  color:rgba(255,255,255,.92);
  white-space:nowrap;
  margin:0;
}

/* ===================== PHONE ===================== */
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .mv-acct-id{
    grid-template-columns:auto 1fr;
    grid-template-areas:"av who" "facts facts" "brand brand";
    column-gap:14px;
    row-gap:14px;
    align-items:center;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av,
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av img,
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av svg,
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar,
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-initial,
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-img{
    width:64px;height:64px;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__av .mv-dash__avatar-initial{
    font-size:28px;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__name{font-size:22px;}
  body.mv2.woocommerce-account.logged-in .mv-acct-id__role{font-size:14px;}
  body.mv2.woocommerce-account.logged-in .mv-acct-id__meta{font-size:13px;gap:7px;margin-top:1px;}

  /* facts become full-width rows: icon + label on the left, value right-aligned */
  body.mv2.woocommerce-account.logged-in .mv-acct-id__facts{
    grid-area:facts;
    padding-left:0;
    padding-top:14px;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.18);
    padding-top:14px;
    gap:11px;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__fact{
    grid-template-columns:auto 1fr auto;
    grid-template-areas:"ico lbl val";
    column-gap:10px;
    align-items:center;
  }
  body.mv2.woocommerce-account.logged-in .mv-acct-id__factlbl{font-size:14px;color:rgba(255,255,255,.78);}
  body.mv2.woocommerce-account.logged-in .mv-acct-id__factval{grid-area:val;text-align:right;font-size:15px;}
  body.mv2.woocommerce-account.logged-in .mv-acct-id__ico{width:19px;height:19px;}

  /* brand drops to the bottom-right, in flow rather than absolute */
  body.mv2.woocommerce-account.logged-in .mv-acct-id__brand{
    grid-area:brand;
    position:static;
    justify-self:end;
    font-size:20px;
    display:block;
  }
}

/* MV2 PHONE BAND FULL BLEED 2026-07-22 - card spans to the header's edges */
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .mv-dash__railtitle{
    border-radius:18px;
    padding:20px 20px 18px;
    box-sizing:border-box;
  }
}

/* MV2 PHONE BAND BLEED 401-767 - header padding is 16px above 400px */

/* MV2 ACCOUNT SECTION BG 2026-07-22 - #DCCDF3 covers the whole account section */
body.mv2.woocommerce-account.logged-in .et_pb_section_0{
  background-color:#DCCDF3 !important;
  background-image:none !important;
}
body.mv2.woocommerce-account.logged-in .et_pb_row_2{
  background-color:transparent !important;
}

/* MV2 IDENTITY ALIGN FIX 2026-07-22 - left-align the identity text */
body.mv2.woocommerce-account.logged-in .mv-dash__railtitle,
body.mv2.woocommerce-account.logged-in .mv-acct-id,
body.mv2.woocommerce-account.logged-in .mv-acct-id__who,
body.mv2.woocommerce-account.logged-in .mv-acct-id__name,
body.mv2.woocommerce-account.logged-in .mv-acct-id__role,
body.mv2.woocommerce-account.logged-in .mv-acct-id__meta,
body.mv2.woocommerce-account.logged-in .mv-acct-id__facts,
body.mv2.woocommerce-account.logged-in .mv-acct-id__factlbl{
  text-align:left !important;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__who{
  align-items:flex-start !important;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__factval{
  text-align:right !important;
}

/* MV2 PHONE CARDS FULL WIDTH 2026-07-22 - every card spans logo to cart.
   Matt: the cards should be full width with the header; #DCCDF3 is the ONLY
   background behind them (no white panel). Break out the container once -
   pulling each card individually double-counts and overshoots. */
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .woocommerce{
    margin-left:0;
    margin-right:0;
    width:auto;
    max-width:none;
  }
  body.mv2.woocommerce-account.logged-in .et_pb_row_2{
    padding-left:0 !important;
    padding-right:0 !important;
    margin-left:10px !important;
    margin-right:10px !important;
    width:auto !important;
  }
}

/* MV2 ROLE ROW + TENURE BADGE 2026-07-22 */
body.mv2.woocommerce-account.logged-in .mv-acct-id__rolerow{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
body.mv2.woocommerce-account.logged-in .mv-acct-id__badge{
  display:inline-flex;align-items:center;
  padding:3px 10px;border-radius:999px;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  white-space:nowrap;line-height:1.4;
}
/* tier colours: bronze -> silver -> gold -> platinum -> diamond */
body.mv2.woocommerce-account.logged-in .mv-acct-id__badge--one{background:rgba(205,127,50,.22);color:#F3C79A;box-shadow:inset 0 0 0 1px rgba(205,127,50,.55);}
body.mv2.woocommerce-account.logged-in .mv-acct-id__badge--two{background:rgba(192,192,192,.22);color:#E9E9EF;box-shadow:inset 0 0 0 1px rgba(210,210,220,.55);}
body.mv2.woocommerce-account.logged-in .mv-acct-id__badge--three{background:rgba(255,196,0,.20);color:#FFD97A;box-shadow:inset 0 0 0 1px rgba(255,196,0,.55);}
body.mv2.woocommerce-account.logged-in .mv-acct-id__badge--five{background:rgba(0,229,255,.18);color:#9BEBF7;box-shadow:inset 0 0 0 1px rgba(0,229,255,.5);}
body.mv2.woocommerce-account.logged-in .mv-acct-id__badge--ten{background:rgba(255,255,255,.20);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);}

/* MV2 KILL ROW PANEL SHADOW 2026-07-22 - #DCCDF3 is the only backdrop */
body.mv2.woocommerce-account.logged-in .et_pb_row_2{
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  border-radius:0 !important;
}

/* MV2 ACTIVE MATCHES ROLE 2026-07-22 - same face/size as the role text */
body.mv2.woocommerce-account.logged-in .mv-acct-id__status{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:16px !important;
  font-weight:400 !important;
  line-height:1.2 !important;
  letter-spacing:.3px !important;
  text-transform:none !important;
  color:rgba(255,255,255,.82) !important;
}
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .mv-acct-id__status{font-size:14px !important;}
}

/* MV2 ACCOUNT FONT SWEEP 2026-07-22 - kill inherited Poppins from .et_pb_text */
body.mv2.woocommerce-account.logged-in .woocommerce,
body.mv2.woocommerce-account.logged-in .woocommerce *{
  font-family:var(--mv-font-body,'Open Sans',-apple-system,BlinkMacSystemFont,sans-serif);
}
body.mv2.woocommerce-account.logged-in .mv-dash__stat-value,
body.mv2.woocommerce-account.logged-in .mv-dash__card-head,
body.mv2.woocommerce-account.logged-in .mv-acct-id__name,
body.mv2.woocommerce-account.logged-in .mv-acct-id__brand,
body.mv2.woocommerce-account.logged-in .mv-dash__btn,
body.mv2.woocommerce-account.logged-in .mv-subhead,
body.mv2.woocommerce-account.logged-in .woocommerce h2,
body.mv2.woocommerce-account.logged-in .woocommerce h3,
body.mv2.woocommerce-account.logged-in .woocommerce th{
  font-family:var(--mv-font-display,'Barlow Condensed','Helvetica Neue',Arial,sans-serif);
}

/* MV2 ROW PADDING RECLAIM 2026-07-22 - reclaim the row's 20px side padding */
body.mv2.woocommerce-account.logged-in .et_pb_row_2{
  padding-left:0 !important;
  padding-right:0 !important;
}

/* MV2 PHONE CARD PADDING 2026-07-22 - 22px -> 16px side padding on phone */
@media (max-width:767px){
  body.mv2.woocommerce-account.logged-in .mv-dash__card,
  body.mv2.woocommerce-account.logged-in .mv-dash__stat,
  body.mv2.woocommerce-account.logged-in .mv-dash__railtitle{
    padding-left:12px;
    padding-right:12px;
  }
}

/* MV2 NARROW PHONE FLUSH 2026-07-22 - header pad is 10px under 400 */

/* MV2 CONTENT FILL WIDTH 2026-07-22 - content must fill the flex row */
@media (max-width:980px){
  body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content{
    align-self:stretch;
    width:100%;
    max-width:100%;
    min-width:0;
  }
}

/* MV2 ADDRESS CARD 2026-07-22 - billing/shipping address gets the card treatment */
body.mv2.woocommerce-account .woocommerce-customer-details address,
body.mv2.woocommerce-account .woocommerce-column--billing-address address,
body.mv2.woocommerce-account .woocommerce-column--shipping-address address,
body.mv2.woocommerce-account .woocommerce-Address address{
  background:#fff;
  border:1px solid var(--mv-line,#E2E2E6);
  border-radius:14px;
  box-shadow:0 2px 10px rgba(19,0,38,.04);
  padding:18px 20px;
  font-style:normal;
  line-height:1.65;
  margin:0 0 24px;
}
@media (max-width:767px){
  body.mv2.woocommerce-account .woocommerce-customer-details address,
  body.mv2.woocommerce-account .woocommerce-Address address{
    padding:14px 12px;
  }
}

/* MV2 ADDRESS NESTING FIX 2026-07-22 - no card-inside-a-card on /edit-address/ */
body.mv2.woocommerce-account .woocommerce-Address address{
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  padding:0;
  margin:0;
}

/* MV2 ADDRESS MANAGE LINK 2026-07-22 - matches the dashboard stat-card link */
body.mv2.woocommerce-account .mv-addr__manage{
  display:inline-block;
  margin-top:14px;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13.5px;
  font-weight:600;
  color:var(--mv-purple,#8300E9) !important;
  -webkit-text-fill-color:var(--mv-purple,#8300E9) !important;
  text-decoration:none !important;
}
body.mv2.woocommerce-account .mv-addr__manage:hover{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}
body.mv2.woocommerce-account .mv-addr__manage::before,
body.mv2.woocommerce-account .mv-addr__manage::after{content:none !important;display:none !important;}

/* MV2 UNIFIED CARD 2026-07-22 - one recipe, copied from Recent Orders */
body.mv2.woocommerce-account .mv-card{
  display:block;
  background:#fff;
  border:1px solid #ECE7F3;
  border-radius:14px;
  box-shadow:0 1px 3px rgba(24,10,48,.05);
  padding:0 12px;
  margin:0 0 20px;
  overflow:hidden;
}
body.mv2.woocommerce-account .mv-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 10px 0;
}
body.mv2.woocommerce-account .mv-card__title{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:20px !important;
  font-weight:600 !important;
  line-height:1.2;
  letter-spacing:.2px;
  color:var(--mv-ink,#231f20) !important;
  margin:0 0 14px !important;
}
/* the block inside loses its own card chrome - the wrapper owns it now */
body.mv2.woocommerce-account .mv-card > table,
body.mv2.woocommerce-account .mv-card > address{
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  margin:0 !important;
  width:100%;
}
body.mv2.woocommerce-account .mv-card > address{
  padding:0 10px 18px !important;
  font-style:normal;
  line-height:1.65;
}
body.mv2.woocommerce-account .mv-card > .mv-addr__manage{
  margin:0 10px 18px;
}

/* MV2 RENEWAL PREFS 2026-07-22 v2 — mockup-match (white card, pill toggles, icons, note) */
/* Scope: body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-rp */

/* ---- OUTER: the whole panel is a clean white card on the purple page ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-rp{
  background:#ffffff;
  border:1px solid var(--mv-line,#E2E2E6);
  border-radius:18px;
  padding:32px 34px 30px;
  box-shadow:0 10px 34px rgba(131,0,233,.10);
  max-width:none;
}
/* Heading — keep the NAME "Renewal Preferences", mockup treatment (black on white) */
body.mv2.woocommerce-account .mv-rp .mv-rp__h{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:30px;font-weight:700;color:var(--mv-ink,#231f20);
  margin:0 0 8px;line-height:1.05;letter-spacing:.2px;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__intro{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:15px;color:#6b6b73;margin:0 0 22px;line-height:1.5;
}

/* ---- PRODUCT SUMMARY ROW — light-lilac rounded card w/ right divider + next renewal ---- */
body.mv2.woocommerce-account .mv-rp .mv-rp__sum{
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;
  background:var(--mv-purple-50,#F5EDFC);
  border-radius:14px;
  padding:20px 24px;
  margin:0 0 26px;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__sumleft{
  display:flex;align-items:center;gap:20px;min-width:0;flex:1 1 auto;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__thumb{
  width:82px;height:82px;object-fit:contain;flex:0 0 auto;
  border-radius:10px;background:transparent;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__meta{
  display:flex;flex-direction:column;gap:3px;min-width:0;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__prod{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:22px;font-weight:700;color:var(--mv-ink,#231f20);line-height:1.1;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__sub{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14px;font-weight:600;color:var(--mv-purple,#8300E9);
  text-decoration:none;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__sub:hover{text-decoration:underline;}
body.mv2.woocommerce-account .mv-rp .mv-rp__price{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14px;color:#57575e;margin-top:2px;
}
/* Right side: divider + calendar icon + label/value */
body.mv2.woocommerce-account .mv-rp .mv-rp__next{
  display:flex;align-items:center;gap:14px;flex:0 0 auto;
  padding-left:26px;
  border-left:1px solid #E4D6F3;
  min-height:60px;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__next::before{
  content:"";flex:0 0 auto;
  width:44px;height:44px;border-radius:50%;
  background:#EADBFA url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%238300E9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2'/><line x1='16' y1='2' x2='16' y2='6'/><line x1='8' y1='2' x2='8' y2='6'/><line x1='3' y1='10' x2='21' y2='10'/></svg>") center/22px no-repeat;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__nextlbl{
  display:block;font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13px;color:#7a7a82;line-height:1.3;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__nextval{
  display:block;font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:21px;font-weight:700;color:var(--mv-ink,#231f20);line-height:1.15;
}

/* ---- "Renewal Date Preferences" sub-heading ---- */
body.mv2.woocommerce-account .mv-rp .mv-rp__sub2{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:20px;font-weight:700;color:var(--mv-ink,#231f20);
  margin:0 0 14px;
}

/* ---- PREFERENCE ROWS — each a bordered white card: icon | text | pill ---- */
body.mv2.woocommerce-account .mv-rp .mv-rp__prefs{
  display:flex;flex-direction:column;gap:0;
  border:1px solid var(--mv-line,#E2E2E6);border-radius:14px;overflow:hidden;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__row{
  display:flex;align-items:center;gap:18px;
  padding:20px 22px;background:#fff;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__row + .mv-rp__row{
  border-top:1px solid #EFEFF2;
}
/* circular purple icon per row (calendar-clock for consent, envelope for email) */
body.mv2.woocommerce-account .mv-rp .mv-rp__row::before{
  content:"";flex:0 0 auto;width:44px;height:44px;border-radius:50%;
  background:#EADBFA center/22px no-repeat;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__row:has(.wcss-ma-consent-cb)::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%238300E9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='18' rx='2'/><line x1='8' y1='2' x2='8' y2='6'/><line x1='3' y1='10' x2='21' y2='10'/><circle cx='16.5' cy='15.5' r='4' fill='%23EADBFA'/><polyline points='16.5 14 16.5 15.5 17.7 16.3'/></svg>");
}
body.mv2.woocommerce-account .mv-rp .mv-rp__row:has(.wcss-ma-email-cb)::before{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%238300E9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><polyline points='3 7 12 13 21 7'/></svg>");
}
body.mv2.woocommerce-account .mv-rp .mv-rp__rowtxt{
  display:flex;flex-direction:column;gap:3px;flex:1 1 auto;min-width:0;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__rowtitle{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:15px;font-weight:700;color:var(--mv-ink,#231f20);line-height:1.25;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__rowdesc{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13.5px;color:#6f6f77;line-height:1.45;
}

/* ---- PILL TOGGLE — hide native checkbox, build a pill from .mv-rp__ctl ---- */
body.mv2.woocommerce-account .mv-rp .mv-rp__ctl{
  display:flex;align-items:center;gap:12px;flex:0 0 auto;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__ctl input[type=checkbox]{
  -webkit-appearance:none;appearance:none;
  position:relative;margin:0;cursor:pointer;
  width:52px;height:30px;border-radius:999px;
  background:#D9D9E0;border:none;flex:0 0 auto;
  transition:background .18s ease;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__ctl input[type=checkbox]::after{
  content:"";position:absolute;top:3px;left:3px;
  width:24px;height:24px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.28);
  transition:transform .18s ease;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__ctl input[type=checkbox]:checked{
  background:var(--mv-purple,#8300E9);
}
body.mv2.woocommerce-account .mv-rp .mv-rp__ctl input[type=checkbox]:checked::after{
  transform:translateX(22px);
}
body.mv2.woocommerce-account .mv-rp .mv-rp__ctl input[type=checkbox]:focus-visible{
  outline:2px solid var(--mv-purple,#8300E9);outline-offset:2px;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__state{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14px;font-weight:600;color:#3d3d44;min-width:64px;
}

/* ---- "Good to know" callout — light-blue info box w/ icon ---- */
body.mv2.woocommerce-account .mv-rp .mv-rp__note{
  display:flex;align-items:flex-start;gap:14px;
  margin:24px 0 0;padding:16px 20px;
  background:#EEF3FE;border:1px solid #DCE6FB;border-radius:12px;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13.5px;color:#3f4b63;line-height:1.5;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__note::before{
  content:"";flex:0 0 auto;width:24px;height:24px;margin-top:1px;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%233B6FE0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/><line x1='12' y1='16' x2='12' y2='12'/><line x1='12' y1='8' x2='12.01' y2='8'/></svg>") center/24px no-repeat;
}
body.mv2.woocommerce-account .mv-rp .mv-rp__note strong{color:#2c3a55;font-weight:700;}

/* ---- responsive: stack the summary + next on phones ---- */
@media (max-width:600px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-rp{padding:22px 18px;}
  body.mv2.woocommerce-account .mv-rp .mv-rp__sum{flex-direction:column;align-items:stretch;gap:16px;}
  body.mv2.woocommerce-account .mv-rp .mv-rp__next{
    padding-left:0;border-left:none;border-top:1px solid #E4D6F3;padding-top:16px;
  }
  body.mv2.woocommerce-account .mv-rp .mv-rp__row{flex-wrap:wrap;}
}

/* MV2 AVPICK FOOTER 2026-07-22 — Cancel/Apply row (select-then-apply) */
body.mv2 .mv-avpick__foot{
  display:flex;justify-content:flex-end;align-items:center;gap:10px;
  margin-top:20px;padding-top:16px;border-top:1px solid #ECECF1;
}
body.mv2 .mv-avpick__btn{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:15px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;
  border-radius:9px;padding:11px 22px;cursor:pointer;border:1px solid transparent;
  transition:background .15s ease,color .15s ease,opacity .15s ease;
}
body.mv2 .mv-avpick__btn--ghost{
  background:#fff;color:#5b5b63;border-color:#D9D9E0;
}
body.mv2 .mv-avpick__btn--ghost:hover{background:#F4F4F7;color:#231f20;}
body.mv2 .mv-avpick__btn--apply{
  background:var(--mv-purple,#8300E9);color:#fff;
}
body.mv2 .mv-avpick__btn--apply:hover:not([disabled]){background:#6d00c2;}
body.mv2 .mv-avpick__btn--apply[disabled]{
  opacity:.45;cursor:not-allowed;
}

/* MV2 AVATAR PENCIL 2026-07-22 — hover-only on desktop, gone on tablet/phone */
/* Desktop/tablet-up: pencil hidden until the avatar is hovered (smooth fade). */
body.mv2 .mv-dash__avatar .mv-dash__avatar-edit{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .16s ease,visibility .16s ease;
}
body.mv2 .mv-dash__avatar:hover .mv-dash__avatar-edit,
body.mv2 .mv-dash__avatar:focus-within .mv-dash__avatar-edit{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
/* Tablet + phone: no pencil at all (no hover on touch; the whole avatar opens the picker). */
@media (max-width:1024px){
  body.mv2 .mv-dash__avatar .mv-dash__avatar-edit{
    display:none !important;
  }
}

/* MV2 PAYMENT METHODS 2026-07-22 — empty state + saved cards table */
/* Scope: the payment-methods endpoint only */

/* ---- EMPTY STATE: "No saved methods found." ----
   Woo/Divi rendered this as a square solid-purple bar with white 18px text.
   Restyle as a soft empty-state card matching the account language. */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info{
  display:flex;align-items:center;gap:14px;
  background:var(--mv-purple-50,#F5EDFC) !important;
  color:#4a4a52 !important;
  border:1px solid #E9DAF8 !important;
  border-radius:14px !important;
  padding:22px 24px !important;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:15px !important;
  font-weight:400 !important;
  line-height:1.5;
  margin:0 0 18px;
}
/* card icon on the empty state */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::before{
  content:"";flex:0 0 auto;
  width:44px;height:44px;border-radius:50%;
  background:#EADBFA url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%238300E9' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><rect x='2' y='5' width='20' height='14' rx='2'/><line x1='2' y1='10' x2='22' y2='10'/></svg>") center/22px no-repeat;
}
/* kill Divi's ::after arrow / default notice decoration */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info::after{
  content:none !important;display:none !important;
}

/* ---- SAVED CARDS TABLE ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods{
  width:100%;border-collapse:separate;border-spacing:0;
  background:#fff;border:1px solid var(--mv-line,#E2E2E6);
  border-radius:14px;overflow:hidden;margin:0 0 18px;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods thead th{
  background:var(--mv-purple-50,#F5EDFC);
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;
  color:#5b4470;text-align:left;padding:14px 18px;border:none;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods tbody td{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14.5px;color:var(--mv-ink,#231F20);
  padding:16px 18px;border:none;border-top:1px solid #EFEFF2;vertical-align:middle;
}
/* method cell: brand + dots */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-PaymentMethod--method{
  font-weight:600;
}
/* default badge */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-PaymentMethod--default .mv-pm-default,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-pm-default{
  display:inline-block;margin-left:8px;padding:3px 9px;border-radius:999px;
  background:#E7F7EC;color:#1F7A3D;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:11.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;
}
/* action buttons in the table */
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods .button{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:13px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;
  border-radius:9px;padding:9px 14px;margin:0 0 0 6px;white-space:nowrap;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods .button.delete{
  background:#fff !important;color:#B3261E !important;
  -webkit-text-fill-color:#B3261E !important;
  border:1px solid #EFD3D1 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods .button.delete:hover{
  background:#B3261E !important;color:#fff !important;-webkit-text-fill-color:#fff !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods td.woocommerce-PaymentMethod--actions{
  text-align:right;white-space:nowrap;
}

/* ---- phone: stack the table rows ---- */
@media (max-width:767px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods thead{display:none;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods tbody tr{
    display:block;border-top:1px solid #EFEFF2;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods tbody tr:first-child{border-top:none;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods tbody td{
    display:block;border-top:none;padding:6px 16px;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods tbody td:first-child{padding-top:16px;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods td.woocommerce-PaymentMethod--actions{
    text-align:left;padding-bottom:16px;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content table.woocommerce-MyAccount-paymentMethods .button{margin:6px 6px 0 0;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info{
    padding:18px !important;font-size:14px !important;
  }
}

/* MV2 ADD PAYMENT METHOD 2026-07-22 — themed to match Renewal Preferences */
/* Scope: /my-account/add-payment-method/ (form#add_payment_method) */

/* ---- OUTER: white card like the RP panel ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment{
  background:#ffffff !important;
  border:1px solid var(--mv-line,#E2E2E6);
  border-radius:18px !important;
  padding:30px 32px 26px !important;
  box-shadow:0 10px 34px rgba(131,0,233,.10);
}
/* ---- kill the list bullets (stray black square) ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment ul.payment_methods,
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment ul.payment_methods li{
  list-style:none !important;
  list-style-type:none !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment ul.payment_methods{
  padding:0 !important;margin:0 !important;border:none !important;background:transparent !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment ul.payment_methods > li{
  padding:0 !important;margin:0 !important;background:transparent !important;
}

/* ---- METHOD HEADER ROW: radio + "Credit card" + card brand icons ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment li.payment_method_authnet{
  display:flex;flex-wrap:wrap;align-items:center;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment li.payment_method_authnet > .woocommerce-PaymentBox{
  flex:0 0 100%;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment li.payment_method_authnet > label{
  display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:15px !important;font-weight:700 !important;
  color:var(--mv-ink,#231F20) !important;
  margin:0 0 4px;padding:0;cursor:pointer;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment li.payment_method_authnet > input.input-radio{
  width:18px;height:18px;margin:0 4px 0 0;accent-color:var(--mv-purple,#8300E9);cursor:pointer;
  vertical-align:middle;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment li.payment_method_authnet > label img{
  height:22px;width:auto;margin:0 0 0 2px;border-radius:3px;vertical-align:middle;
}

/* ---- THE CARD-FORM PANEL: lilac like the RP summary card (was flat grey) ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .woocommerce-PaymentBox{
  background:var(--mv-purple-50,#F5EDFC) !important;
  color:var(--mv-ink,#231F20) !important;
  border:1px solid #E9DAF8 !important;
  border-radius:14px !important;
  padding:22px 24px !important;
  margin:10px 0 0 !important;
}
/* Woo's little pointer triangle above the box — recolour to the lilac */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .woocommerce-PaymentBox::before{
  border-bottom-color:var(--mv-purple-50,#F5EDFC) !important;
}
/* intro line "Pay with your credit card" */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .woocommerce-PaymentBox > #authnet-payment-data > p:first-child,
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .woocommerce-PaymentBox > p:first-child{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:14px !important;color:#6b6b73 !important;
  margin:0 0 16px !important;
}

/* ---- FIELDS ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment fieldset.wc-credit-card-form{
  background:transparent !important;border:none !important;padding:0 !important;margin:0 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .form-row label{
  display:block;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:13px !important;font-weight:600 !important;
  color:#5b5560 !important;margin:0 0 6px !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .form-row .required{color:#B3261E;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form input[type=tel],
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form input[type=text],
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form input.input-text{
  width:100%;box-sizing:border-box;
  background:#fff !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:10px !important;
  min-height:50px !important;height:auto !important;
  padding:12px 14px !important;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:16px !important;   /* was 25.5px from the gateway CSS */
  color:var(--mv-ink,#231F20) !important;
  box-shadow:none !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form input:focus{
  outline:none !important;
  border-color:var(--mv-purple,#8300E9) !important;
  box-shadow:0 0 0 3px rgba(131,0,233,.15) !important;
}
/* two-up row for expiry + cvc */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form .form-row{
  margin:0 0 14px !important;padding:0 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form .form-row-first,
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form .form-row-last{
  width:calc(50% - 7px) !important;float:left !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form .form-row-last{
  float:right !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form .clear{clear:both;}

/* ---- SUBMIT ROW ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment > .form-row{
  margin:22px 0 0 !important;padding:18px 0 0 !important;
  border-top:1px solid #ECECF1;
  display:flex;justify-content:flex-end;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #place_order{
  background:var(--mv-purple,#8300E9) !important;
  color:#fff !important;-webkit-text-fill-color:#fff !important;
  border:none !important;border-radius:9px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:15px !important;font-weight:600 !important;
  letter-spacing:.4px;text-transform:uppercase !important;
  padding:12px 26px !important;float:none !important;cursor:pointer;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #place_order:hover{
  background:#6d00c2 !important;
}

/* ---- phone ---- */
@media (max-width:600px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment{padding:22px 18px !important;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .woocommerce-PaymentBox{padding:18px 16px !important;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form .form-row-first,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment .wc-credit-card-form .form-row-last{
    width:100% !important;float:none !important;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content #payment > .form-row{justify-content:stretch;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content #place_order{width:100%;}
}

/* MV2 ORDER CARD ACTIONS 2026-07-22 - invoice buttons in one row inside the card */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-ordacts{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  margin:0 12px 16px;padding:16px 0 0;
  border-top:1px solid #EFEFF2;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-ordacts .button{
  margin:0 !important;float:none !important;white-space:nowrap;
}
@media (max-width:600px){
  /* Matt: keep Print + Download on the SAME ROW on phone; Order again goes full width
     beneath. At 360/390 they land ~134/149px each with no clipping; below ~340 they
     wrap to their own rows rather than truncate, which is the right fallback. */
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-ordacts .button{
    flex:1 1 calc(50% - 4px);width:auto;text-align:center;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-ordacts .button:nth-child(n+3){
    flex:1 1 100%;
  }
}

/* MV2 ORDER META ROWS 2026-07-22 - order number/date/status inside the details card */
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-ometa th.mv-ometa__label{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:14px !important;font-weight:600 !important;
  color:#6b6b73 !important;text-align:left;
  padding:14px 18px !important;border:none !important;
  border-bottom:1px solid #F1F1F5 !important;width:40%;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-ometa td.mv-ometa__value{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:14.5px !important;color:var(--mv-ink,#231F20) !important;
  padding:14px 18px !important;border:none !important;
  border-bottom:1px solid #F1F1F5 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-ometa .mv-ometa__num{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:17px;font-weight:700;color:var(--mv-purple,#8300E9);
}
@media (max-width:767px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-ometa th.mv-ometa__label,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content tr.mv-ometa td.mv-ometa__value{
    padding:10px 14px !important;width:auto;
  }
}

/* MV2 ORDER CARD SPACING 2026-07-22 - even 20px between all account cards */
body.mv2.woocommerce-account .woocommerce-MyAccount-content section.woocommerce-order-details,
body.mv2.woocommerce-account .woocommerce-MyAccount-content section.woocommerce-customer-details,
body.mv2.woocommerce-account .woocommerce-MyAccount-content section.woocommerce-order-downloads{
  margin:0 !important;padding:0 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card{
  margin:0 0 20px !important;
}
/* (no :last-child zeroing - it matched the last card of EACH section, collapsing the gap) */

/* MV2 QUICK HELP CONTACT 2026-07-22 - phone/email/hours replace the Contact Support button */
body.mv2 .mv-quick__help{
  display:flex;flex-direction:column;gap:0;
}
body.mv2 .mv-quick__help .mv-quick__help-t{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:19px;font-weight:700;color:var(--mv-ink,#231F20);
  line-height:1.2;margin:0 0 10px;
}
body.mv2 .mv-quick__help .mv-quick__help-row{
  display:block;padding:8px 0;
  border-top:1px solid #E4D6F3;
}
body.mv2 .mv-quick__help .mv-quick__help-row:first-of-type{border-top:none;padding-top:0;}
body.mv2 .mv-quick__help .mv-quick__help-row:last-of-type{padding-bottom:0;}
body.mv2 .mv-quick__help .mv-quick__help-k{
  display:block;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:11.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;
  color:#7c6a8c;line-height:1.3;margin:0 0 2px;
}
body.mv2 .mv-quick__help .mv-quick__help-v{
  display:block;
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13.5px;font-weight:600;
  color:var(--mv-purple-deep,#672B91);
  line-height:1.35;
  white-space:nowrap;               /* each value on ONE line */
  overflow:hidden;text-overflow:ellipsis;
  text-decoration:none;
}
body.mv2 .mv-quick__help a.mv-quick__help-v:hover{
  color:var(--mv-purple,#8300E9);text-decoration:underline;
}
/* kill Divi's hover arrow on these links */
body.mv2 .mv-quick__help .mv-quick__help-v::before,
body.mv2 .mv-quick__help .mv-quick__help-v::after{content:none !important;display:none !important;}

/* MV2 ACCOUNT DETAILS CARDS 2026-07-22 - edit-account form wrapped in mv-card sections */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .mv-card__body{
  padding:4px 12px 18px;
}
/* two-up name row inside the card */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .form-row-first,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .form-row-last{
  width:calc(50% - 8px) !important;float:left !important;clear:none !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .form-row-last{float:right !important;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .clear{clear:both;height:0;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .form-row{
  margin:0 0 16px !important;padding:0 !important;
}
/* the password fieldset no longer needs its own chrome - the card provides it */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form fieldset{
  border:none !important;padding:0 !important;margin:0 !important;
}
/* billing-address explainer line */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form p.form-row-wide em,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form span.description{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:13px;color:#6f6f77;font-style:normal;line-height:1.5;
}
/* actions row - mirrors .mv-ordacts on the order card */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;
  margin:0 12px 16px;padding:16px 0 0;border-top:1px solid #EFEFF2;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts p{margin:0 !important;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts button{
  margin:0 !important;float:none !important;white-space:nowrap;
}
@media (max-width:600px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .form-row-first,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .form-row-last{
    width:100% !important;float:none !important;
  }
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts{justify-content:stretch;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts > p{flex:1 1 100%;width:100%;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts button{width:100%;}
}

/* MV2 ADDRESSES 2026-07-22 - list view cards + edit-form card */
/* ---- LIST VIEW: two address cards side by side ---- */
/* GRID with EXPLICIT placement - the wrapper has whitespace text nodes between the two
   columns which become anonymous FLEX items and eat a leading 20px gap. Explicit
   grid-column placement ignores them entirely. */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid{
  display:grid !important;grid-template-columns:1fr 1fr !important;
  gap:20px !important;box-sizing:border-box;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .u-column1,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .col-1{
  grid-column:1 !important;grid-row:1 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .u-column2,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .col-2{
  grid-column:2 !important;grid-row:1 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .mv-addrcard{
  width:auto !important;max-width:100% !important;min-width:0 !important;
  float:none !important;margin:0 !important;box-sizing:border-box;
}
/* header: title left, Edit link right on one row */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head{
  display:flex !important;align-items:baseline;justify-content:space-between;gap:12px;
  margin:0 0 10px;padding:0 0 10px;border-bottom:1px solid #F1F1F5;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head h2,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head h3{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:20px !important;font-weight:700 !important;
  color:var(--mv-ink,#231F20) !important;margin:0 !important;
}
/* Edit link - was Divi blue-violet rgb(84,48,206); force brand purple */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__edit{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:13px !important;font-weight:600 !important;
  color:var(--mv-purple,#8300E9) !important;
  -webkit-text-fill-color:var(--mv-purple,#8300E9) !important;
  white-space:nowrap;text-decoration:none !important;flex:0 0 auto;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__edit:hover{
  text-decoration:underline !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__edit::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__edit::after{
  content:none !important;display:none !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard address{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14.5px;line-height:1.6;color:#4a4a52;font-style:normal;margin:0;
}
@media (max-width:767px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid{grid-template-columns:1fr !important;gap:16px !important;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .u-column1,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .col-1{grid-column:1 !important;grid-row:1 !important;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .u-column2,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .col-2{grid-column:1 !important;grid-row:2 !important;}
}

/* MV2 ADDRESS PADDING FIX 2026-07-22 - match the 16px table standard used by Orders/Subscriptions,
   and stop whitespace text nodes becoming flex items in the address card header. */
/* address cards: 16px padding like the order/subscription tables */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard{
  padding:16px !important;
}
/* header: only the h2 and the Edit link should be flex items.
   Woo's markup has newline text nodes between them which become anonymous
   flex items and push the title inward (measured title inset 103 / 92 px). */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head{
  display:grid !important;grid-template-columns:1fr auto !important;
  align-items:baseline !important;column-gap:12px !important;
  margin:0 0 12px !important;padding:0 0 12px !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head h2,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head h3{
  grid-column:1 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__edit{
  grid-column:2 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head h2,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__head h3{
  margin:0 !important;padding:0 !important;font-size:20px !important;
  line-height:1.2 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard__edit{
  font-size:13px !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrcard address{
  font-size:14.5px;
}
/* form cards (address edit + account details): content flush at 16px like the tables */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form{
  padding:0 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .mv-card__head{
  padding:18px 16px 0 !important;margin:0 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .mv-card__body{
  padding:14px 16px 4px !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-card--form .mv-acctacts{
  margin:0 16px 16px !important;
}

/* MV2 SAVED ADDRESSES 2026-07-22 - card the msa- (Saved Shipping Addresses / Add New Address)
   block, and kill Woo's col-1/col-2 side margins that were insetting the address cards by 20px. */
/* Woo's .col2-set/.col-1/.col-2 carry percentage widths + side margins; beat them so the
   address cards sit flush with the content edge like the Orders/Subscriptions tables. */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .col-1,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .col-2,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .u-column1,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid > .u-column2{
  margin-left:0 !important;margin-right:0 !important;
  float:none !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-addrgrid{
  margin:0 0 20px !important;
}

/* ---- SAVED SHIPPING ADDRESSES + ADD NEW ADDRESS (msa- plugin) ---- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap{
  background:#fff !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:14px !important;
  padding:18px 16px 16px !important;
  margin:0 0 20px !important;
  box-sizing:border-box;
}
/* heading row: title + the "0 of 10" pill */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-heading-row{
  display:flex !important;align-items:baseline;gap:12px;flex-wrap:wrap;
  margin:0 0 12px !important;padding:0 0 12px !important;
  border-bottom:1px solid #F1F1F5;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-heading-row h2{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:20px !important;font-weight:700 !important;line-height:1.2 !important;
  color:var(--mv-ink,#231F20) !important;margin:0 !important;padding:0 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-count,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-heading-row span{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:12px !important;font-weight:600 !important;
  background:var(--mv-purple-50,#F5EDFC);color:#5b4470;
  padding:4px 10px;border-radius:999px;white-space:nowrap;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-no-addresses{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:14px !important;color:#6f6f77 !important;font-style:normal !important;
  margin:0 0 18px !important;
}
/* "Add New Address" sub-heading */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap > h3{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:18px !important;font-weight:700 !important;
  color:var(--mv-ink,#231F20) !important;
  margin:0 0 14px !important;padding:14px 0 0 !important;
  border-top:1px solid #F1F1F5;
}
/* form rows: two-up, full-width variants */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form{
  display:flex;flex-wrap:wrap;gap:0 16px;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form .msa-row{
  flex:1 1 calc(50% - 8px);min-width:0;margin:0 0 14px;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form .msa-row.full{
  flex:1 1 100%;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form label{
  display:block;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:13px !important;font-weight:600 !important;
  color:#5b5560 !important;margin:0 0 6px !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form input[type=text],
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form input[type=tel],
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form select{
  width:100%;box-sizing:border-box;
  background:#fff !important;border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:10px !important;min-height:48px !important;
  padding:12px 14px !important;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:15px !important;color:var(--mv-ink,#231F20) !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form input:focus,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form select:focus{
  outline:none !important;border-color:var(--mv-purple,#8300E9) !important;
  box-shadow:0 0 0 3px rgba(131,0,233,.15) !important;
}
/* submit */
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap .msa-submit{
  background:var(--mv-purple,#8300E9) !important;color:#fff !important;
  -webkit-text-fill-color:#fff !important;border:none !important;border-radius:9px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:15px !important;font-weight:600 !important;letter-spacing:.4px;
  text-transform:uppercase !important;padding:12px 26px !important;cursor:pointer;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form button:hover{background:#6d00c2 !important;}
@media (max-width:600px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form .msa-row{flex:1 1 100%;}
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-form button{width:100%;}
}

/* MV2 UNIFIED ACCOUNT BUTTONS 2026-07-22
   Matt: "I wish all the buttons associated with the dashboard were like the Adjust Your
   Plan button in subscriptions — the exception would be a cancel button that should be
   red themed as they are now, but with the same kind of hover effect, red instead of purple."

   THE RECIPE (copied from a.wcs-switch-link.mv-subacts__btn):
     rest  : #fff bg / #672B91 text / 1px #E2E2E6 border / 9px radius / 10px 18px
             Barlow Condensed 13px 600 uppercase, .02em, transition .12s
     hover : #F5EDFC bg / border #8300E9 / text stays #672B91
   Destructive (.cancel/.delete/.suspend/Cancel) uses the same shape in red:
     rest  : #fff bg / #B3261E text / 1px #EFD3D1 border
     hover : #FCEFEE bg / border #B3261E / text stays #B3261E                            */

/* ---------- BASE: every account button gets the ghost treatment ---------- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content input[type=submit],
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-ordacts .button,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts button{
  display:inline-block;
  background:#fff !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:9px !important;
  padding:10px 18px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  letter-spacing:.02em;
  text-transform:uppercase !important;
  text-decoration:none !important;
  box-shadow:none !important;
  cursor:pointer;
  transition:background .12s ease,border-color .12s ease;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content input[type=submit]:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap button:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-ordacts .button:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts button:hover{
  background:var(--mv-purple-50,#F5EDFC) !important;
  border-color:var(--mv-purple,#8300E9) !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}
/* kill Divi's hover arrow on all of them */
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button::after,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button::before,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button::after{
  content:none !important;display:none !important;
}

/* ---------- DESTRUCTIVE: same shape, red palette + red hover ---------- */
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.cancel,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.delete,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.suspend,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.cancel,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.cancel,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.msa-cancel,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap button.msa-cancel,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-danger{
  background:#fff !important;
  color:#B3261E !important;
  -webkit-text-fill-color:#B3261E !important;
  border:1px solid #EFD3D1 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.cancel:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.delete:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.button.suspend:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content a.cancel:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.cancel:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content button.msa-cancel:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap button.msa-cancel:hover,
body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-danger:hover{
  background:#FCEFEE !important;
  border-color:#B3261E !important;
  color:#B3261E !important;
  -webkit-text-fill-color:#B3261E !important;
}

/* ---------- phone: full-width in the action rows ---------- */
@media (max-width:600px){
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .mv-acctacts button,
  body.mv2.woocommerce-account .woocommerce-MyAccount-content .msa-wrap button{
    width:100%;
  }
}

/* MV2 UNIFIED BUTTONS - LOGGED-IN SPECIFICITY 2026-07-22
   An older block styles the primary submits with selectors carrying an EXTRA
   .logged-in class (body.mv2.woocommerce-account.logged-in ...), which outranks
   the unified block above and kept "Save changes" solid purple. Re-assert the
   ghost recipe at matching specificity. */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button[type="submit"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="submit"],
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > p > a.button,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > a.button,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .msa-wrap button{
  background:#fff !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:9px !important;
  padding:10px 18px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:13px !important;font-weight:600 !important;
  text-transform:uppercase !important;box-shadow:none !important;
  transition:background .12s ease,border-color .12s ease;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button[type="submit"]:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content input[type="submit"]:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > p > a.button:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content > a.button:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .msa-wrap button:hover{
  background:var(--mv-purple-50,#F5EDFC) !important;
  border-color:var(--mv-purple,#8300E9) !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}
/* destructive keeps red at the same raised specificity */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button.cancel,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button.delete,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button.suspend,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button.cancel,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button.msa-cancel,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .mv-danger{
  background:#fff !important;color:#B3261E !important;
  -webkit-text-fill-color:#B3261E !important;border:1px solid #EFD3D1 !important;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button.cancel:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button.delete:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content a.button.suspend:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button.cancel:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content button.msa-cancel:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .mv-danger:hover{
  background:#FCEFEE !important;border-color:#B3261E !important;
  color:#B3261E !important;-webkit-text-fill-color:#B3261E !important;
}

/* MV2 MSA CANCEL RED 2026-07-22 - the Saved-Addresses modal Cancel is #msa-close-modal
   with only class "button" (no .cancel), so the destructive selectors missed it. */
body.mv2.woocommerce-account .woocommerce-MyAccount-content #msa-close-modal,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content #msa-close-modal{
  background:#fff !important;color:#B3261E !important;
  -webkit-text-fill-color:#B3261E !important;border:1px solid #EFD3D1 !important;
}
body.mv2.woocommerce-account .woocommerce-MyAccount-content #msa-close-modal:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content #msa-close-modal:hover{
  background:#FCEFEE !important;border-color:#B3261E !important;
  color:#B3261E !important;-webkit-text-fill-color:#B3261E !important;
}

/* MV2 DASH BUTTON UNIFY 2026-07-22 - Matt: "Manage subscription button on the subscription
   overview card was not changed." It lives INSIDE .mv-dash as a bare <a class="mv-dash__btn">
   (no .button class), so the unified account-button selectors never reached it, and an older
   MV2 DASH BUTTON CLEANUP rule at body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__btn
   (spec ~502) was the computed winner. Re-assert the canonical ghost recipe above it.
   Was: #8300E9 text + #8300E9 border, 14px, text-transform:none, padding 11px 20px. */
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .mv-dash a.mv-dash__btn,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .mv-dash button.mv-dash__btn,
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__btn.mv-dash__btn--ghost,
body.mv2.woocommerce-account.logged-in .mv-dash button.mv-dash__btn.mv-dash__btn--ghost{
  background:#fff !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:9px !important;
  padding:10px 18px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  letter-spacing:.02em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  box-shadow:none !important;
  transition:background .12s ease,border-color .12s ease !important;
}
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .mv-dash a.mv-dash__btn:hover,
body.mv2.woocommerce-account.logged-in .woocommerce-MyAccount-content .mv-dash button.mv-dash__btn:hover,
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__btn.mv-dash__btn--ghost:hover,
body.mv2.woocommerce-account.logged-in .mv-dash button.mv-dash__btn.mv-dash__btn--ghost:hover{
  background:var(--mv-purple-50,#F5EDFC) !important;
  border-color:var(--mv-purple,#8300E9) !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}
/* no Divi arrow */
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__btn::before,
body.mv2.woocommerce-account.logged-in .mv-dash a.mv-dash__btn::after{
  content:none !important;display:none !important;
}

/* MV2 HERO FLUID DESKTOP v2 2026-07-22
   Matt: "remove the restriction on the mainly text half so that it can grow larger with
   screen size like the bottlefruit image grows."

   THE PROBLEM (measured): the copy column was capped at max-width:544px and the fluid
   clamp block was gated @media(min-width:2000px), so EVERY width from 1281-1999 got no
   scaling at all. Copy vs fruit, as a % of their equal halves:
       1440  copy 76%  fruit 89%
       1600  copy 69%  fruit 90%
       1920  copy 57%  fruit 92%   <- worst, and the most common desktop
       2560  copy 58%  fruit 69%
   The fruit uses max-height:97% + object-fit:contain, so it grows with its container.
   FIX: gate at 981px (where the desktop hero layout starts) and drive the copy side from
   ~43.5vw, which holds copy at ~88% of its half at EVERY width - matching the fruit.
   1280 is deliberately kept at its current sizes so ordinary laptops don't change. */
@media (min-width:981px){
  body.mv2 .mv-hero__copy{
    max-width:clamp(517px,41.3vw,1482px) !important;
  }
  body.mv2 .mv-hero__copy h1,
  body.mv2 .mv-hero h1{
    font-size:clamp(87px,6.84vw,238px) !important;
    line-height:1.03 !important;
  }
  body.mv2 .mv-hero__eyebrow{
    font-size:clamp(30px,2.38vw,74px) !important;
  }
  body.mv2 .mv-hero__sub{
    font-size:clamp(19px,1.38vw,42px) !important;
    max-width:clamp(456px,32.3vw,1121px) !important;
  }
  body.mv2 .mv-hero__cta{
    font-size:clamp(18px,1.28vw,38px) !important;
    padding:clamp(13px,1vw,28.5px) clamp(28.5px,2.19vw,63px) !important;
  }
  /* feature list scales too, so it doesn't look stranded under a big headline */
  body.mv2 .mv-hero__features .mv-hf__t{
    font-size:clamp(15px,1.09vw,32px) !important;
  }
  body.mv2 .mv-hero__features .mv-hf__s{
    font-size:clamp(13px,0.9vw,27px) !important;
  }
  body.mv2 .mv-hero__features .mv-hf__icon svg,
  body.mv2 .mv-hero__features .mv-hf__icon{
    width:clamp(24px,1.7vw,50px) !important;
    height:clamp(24px,1.7vw,50px) !important;
  }
}

/* MV2 SHOP CARD NAME 2026-07-22 - Matt: product cards get the product name on its own line
   ABOVE the existing qty/count line, e.g.
       Line 1: MONAVIE ACTIVE   (all caps)
       Line 2: 1 bottle  25.3 oz   (UNCHANGED from its current styling)
   The head was a flex ROW holding qty + count; it becomes a COLUMN whose second row
   (.mv-card__line) is the original flex row, so qty/count keep their exact look. */
body.mv2 .mv-card__head{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:2px !important;
}
body.mv2 .mv-card__name{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:15px;
  font-weight:600;
  line-height:1.15;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--mv-purple-deep,#672B91);
  white-space:nowrap;
}
/* the original qty+count row, preserved exactly as it was */
body.mv2 .mv-card__line{
  display:flex;
  flex-direction:row;
  align-items:baseline;
  gap:12px;
}
@media (max-width:600px){
  body.mv2 .mv-card__name{font-size:13px;letter-spacing:.06em;}
}

/* MV2 CARD MEDIA LINK 2026-07-22 - Matt: "the product images on the homepage should probably
   also be linked to the product page respectively". The image is wrapped in an <a> to the same
   permalink the "Product details" link uses. The anchor is tabindex=-1 + aria-hidden so keyboard
   and screen-reader users don't get TWO identical links per card (16 tab stops instead of 8) -
   the visible "Product details" link remains the accessible route. */
body.mv2 .mv-card__medialink{
  display:block;
  text-decoration:none !important;
  color:inherit;
  cursor:pointer;
}
body.mv2 .mv-card__medialink::before,
body.mv2 .mv-card__medialink::after{
  content:none !important;display:none !important;   /* no Divi hover arrow */
}
/* the bottle already sinks/rises on card hover - keep that as the only motion,
   just make the pointer read as clickable over the image. */
body.mv2 .mv-card__medialink .mv-card__media{
  cursor:pointer;
}

/* MV2 THANK YOU 2026-07-22 - the order-received page.
   TWO problems: (1) it inherits the CHECKOUT page's Divi rows, which carry HARDCODED
   widths (row_2 = 533px at x=1435 on a 2545px screen) so the confirmation was squeezed
   into a narrow off-centre strip on desktop - tablet/phone were already full width;
   (2) it was raw unstyled WooCommerce. Cards are built by mv2-thankyou.php. */

/* ---- (1) WIDTH — THE REAL CAUSE ----
   The thank-you page also carries body.woocommerce-checkout, so it INHERITS the checkout
   page's two-column CSS GRID (`.et_pb_section_0{display:grid;grid-template-columns:1.55fr 1fr}`)
   and `.et_pb_row_2{grid-column:2}` — the sticky order-summary column. That pinned the whole
   confirmation into the narrow RIGHT column (533px at x=1435 on a 2545px screen).
   Fighting `width` was useless; the fix is to UNDO THE GRID on this endpoint. */
body.mv2.woocommerce-order-received .et_pb_section_0{
  display:block !important;
  grid-template-columns:none !important;
}
body.mv2.woocommerce-order-received .et_pb_section_0 > .et_pb_row,
body.mv2.woocommerce-order-received .et_pb_section_0 > .et_pb_row_0,
body.mv2.woocommerce-order-received .et_pb_section_0 > .et_pb_row_1,
body.mv2.woocommerce-order-received .et_pb_section_0 > .et_pb_row_2{
  grid-column:auto !important;grid-row:auto !important;
  position:static !important;top:auto !important;
  width:100% !important;max-width:1392px !important;
  margin-left:auto !important;margin-right:auto !important;float:none !important;
}
body.mv2.woocommerce-order-received .et_pb_section_0 .et_pb_column{
  width:100% !important;margin-right:0 !important;float:none !important;
}
body.mv2.woocommerce-order-received .woocommerce-order{
  width:100%;max-width:100%;
}

/* ---- (2) SUCCESS BANNER ---- */
body.mv2.woocommerce-order-received .woocommerce-thankyou-order-received{
  display:flex;align-items:center;gap:14px;
  background:#E7F6EC !important;
  border:1px solid #BFE6CC !important;
  border-radius:14px !important;
  padding:20px 24px !important;
  margin:0 0 20px !important;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:16px !important;
  font-weight:600 !important;
  color:#18884A !important;
}
body.mv2.woocommerce-order-received .woocommerce-thankyou-order-received::before{
  content:"";flex:0 0 auto;width:34px;height:34px;border-radius:50%;
  background:#18884A url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center/20px no-repeat;
}
body.mv2.woocommerce-order-received .woocommerce-thankyou-order-received::after{
  content:none !important;display:none !important;
}

/* ---- (3) ORDER OVERVIEW: the number/date/email/total strip becomes a card ---- */
body.mv2.woocommerce-order-received ul.woocommerce-order-overview{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) !important;
  gap:0 !important;
  list-style:none !important;
  margin:0 0 20px !important;padding:0 !important;
  background:#fff;border:1px solid var(--mv-line,#E2E2E6);border-radius:14px;overflow:hidden;
}
body.mv2.woocommerce-order-received ul.woocommerce-order-overview li{
  list-style:none !important;
  margin:0 !important;
  padding:16px 18px !important;
  border:none !important;
  border-right:1px solid #F1F1F5 !important;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:12px !important;font-weight:600 !important;
  letter-spacing:.05em;text-transform:uppercase;color:#7c6a8c !important;
}
body.mv2.woocommerce-order-received ul.woocommerce-order-overview li:last-child{border-right:none !important;}
body.mv2.woocommerce-order-received ul.woocommerce-order-overview li strong{
  display:block;margin-top:4px;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:20px !important;font-weight:700 !important;
  letter-spacing:0;text-transform:none;color:var(--mv-ink,#231F20) !important;
  overflow-wrap:anywhere;
}

/* ---- (4) CARDS (built by mv2-thankyou.php) ---- */
body.mv2.woocommerce-order-received .mv-card--ty{
  background:#fff;border:1px solid var(--mv-line,#E2E2E6);
  border-radius:14px;padding:0;margin:0 0 20px;
}
body.mv2.woocommerce-order-received .mv-card--ty .mv-card__head{
  padding:18px 16px 0;
}
body.mv2.woocommerce-order-received .mv-card--ty .mv-card__title{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:20px !important;font-weight:700 !important;
  color:var(--mv-ink,#231F20) !important;margin:0 !important;padding:0 !important;
}
body.mv2.woocommerce-order-received .mv-card--ty .mv-card__body{
  padding:12px 16px 16px;
}
body.mv2.woocommerce-order-received .mv-card--ty table{
  width:100%;border-collapse:collapse;margin:0;
}
body.mv2.woocommerce-order-received .mv-card--ty address{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14.5px;line-height:1.6;color:#4a4a52;font-style:normal;margin:0;
}
/* the "View the status of your subscription" line */
body.mv2.woocommerce-order-received .woocommerce-order > p{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:14.5px;color:#6f6f77;margin:0 0 20px;
}

@media (max-width:600px){
  body.mv2.woocommerce-order-received ul.woocommerce-order-overview{grid-template-columns:1fr !important;}
  body.mv2.woocommerce-order-received ul.woocommerce-order-overview li{
    border-right:none !important;border-bottom:1px solid #F1F1F5 !important;
  }
  body.mv2.woocommerce-order-received ul.woocommerce-order-overview li:last-child{border-bottom:none !important;}
}

/* MV2 THANK YOU NEXT STEPS 2026-07-22 - stock Woo ends the thank-you page at the billing
   address with no next step. This card gives the customer somewhere to go. */
body.mv2.woocommerce-order-received .mv-ty-next__lede{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:14.5px !important;color:#6f6f77 !important;
  margin:0 0 14px !important;line-height:1.55;
}
body.mv2.woocommerce-order-received .mv-ty-next__acts{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  margin:0 !important;padding:0 !important;border-top:none !important;
}
@media (max-width:600px){
  body.mv2.woocommerce-order-received .mv-ty-next__acts .button{flex:1 1 100%;text-align:center;}
}

/* MV2 THANK YOU BUTTONS 2026-07-22 - the unified ghost recipe is scoped to
   .woocommerce-account, and the thank-you page is a CHECKOUT page, so its buttons
   fell back to Divi defaults (20px text, 3px radius). Re-assert the recipe here. */
body.mv2.woocommerce-order-received .woocommerce-order a.button,
body.mv2.woocommerce-order-received .mv-ty-next a.button{
  display:inline-block;
  background:#fff !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  border:1px solid var(--mv-line,#E2E2E6) !important;
  border-radius:9px !important;
  padding:10px 18px !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  letter-spacing:.02em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  box-shadow:none !important;
  cursor:pointer;
  transition:background .12s ease,border-color .12s ease;
}
body.mv2.woocommerce-order-received .woocommerce-order a.button:hover,
body.mv2.woocommerce-order-received .mv-ty-next a.button:hover{
  background:var(--mv-purple-50,#F5EDFC) !important;
  border-color:var(--mv-purple,#8300E9) !important;
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
}
body.mv2.woocommerce-order-received .woocommerce-order a.button::before,
body.mv2.woocommerce-order-received .woocommerce-order a.button::after{
  content:none !important;display:none !important;
}

/* MV2 BRAND WORDMARK COLOUR 2026-07-22 - "my Monavie." in the account identity band.
   Matt asked for purple instead of white. CONSTRAINT: the band is ALREADY a purple
   gradient (#4C1D95 -> #6D28D9 -> #7C3AED) and the wordmark sits at the RIGHT end,
   over ~#7C3AED. Measured contrast on that stop:
       white .92        5.70:1
       #F5EDFC          4.99:1   <- chosen (--mv-purple-50, an existing brand token)
       #E9D5FF          4.19:1   fails AA
       #8300E9          1.17:1   effectively invisible
   A SATURATED purple is impossible here - purple on purple. #F5EDFC is a purple-tinted
   white: reads as purple against the band while clearing the 4.5:1 AA floor. */
body.mv2 .mv-acct-id__brand{
  color:var(--mv-purple-50,#F5EDFC) !important;
  -webkit-text-fill-color:var(--mv-purple-50,#F5EDFC) !important;
}

/* MV2 TERMS OF SERVICE 2026-07-23 - Matt: "Times New Roman, that very lawyer professional look."
   Purple hero + v2 header are KEPT so the page still reads as part of the site; the DOCUMENT
   BODY switches to a serif legal treatment. Sticky contents rail like the shipping page. */
body.mv2 .mv-tos{
  background:#fff;
  padding:0 0 var(--mv-s7,4.5rem);
}
body.mv2 .mv-tos__inner{
  max-width:1180px;margin:0 auto;padding:0 24px;
}

/* ---- HEADER: purple band, sans display title (site voice) ---- */
body.mv2 .mv-tos__head{
  background:linear-gradient(135deg,#4C1D95 0%,#6D28D9 55%,#7C3AED 100%);
  border-radius:0 0 18px 18px;
  padding:clamp(38px,4.5vw,72px) clamp(24px,3vw,56px) clamp(30px,3.5vw,52px);
  margin:0 0 clamp(32px,3.5vw,56px);
  color:#fff;
}
body.mv2 .mv-tos__title{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:clamp(38px,5vw,76px) !important;
  font-weight:700 !important;line-height:1.05 !important;
  letter-spacing:.01em;text-transform:uppercase;
  color:#fff !important;margin:0 0 18px !important;padding:0 !important;
}
body.mv2 .mv-tos__meta{
  display:flex;flex-wrap:wrap;gap:10px 40px;margin:0;padding:0;
}
body.mv2 .mv-tos__metarow{display:flex;flex-direction:column;gap:2px;}
body.mv2 .mv-tos__meta dt{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.72);margin:0;
}
body.mv2 .mv-tos__meta dd{
  font-family:'Times New Roman',Times,serif;
  font-size:18px;color:var(--mv-purple-50,#F5EDFC);margin:0;
}

/* ---- LAYOUT: sticky contents rail + document ---- */
body.mv2 .mv-tos__grid{
  display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(28px,3vw,56px);
  align-items:start;
}
body.mv2 .mv-tos__nav{
  position:sticky;top:96px;
  border-right:1px solid #E4E4E8;padding-right:22px;
}
body.mv2 .mv-tos__navtitle{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:11.5px !important;font-weight:700 !important;
  letter-spacing:.1em;text-transform:uppercase;
  color:#7c6a8c !important;margin:0 0 12px !important;
}
body.mv2 .mv-tos__navlist{
  list-style:decimal !important;margin:0 !important;padding:0 0 0 20px !important;
  counter-reset:none;
}
body.mv2 .mv-tos__navlist li{
  margin:0 0 7px !important;padding:0 !important;
  font-family:'Times New Roman',Times,serif;
  font-size:14.5px;line-height:1.35;color:#6b6b73;
}
body.mv2 .mv-tos__navlist li::marker{color:#a99bb8;font-size:12.5px;}
body.mv2 .mv-tos__navlist a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:none !important;
}
body.mv2 .mv-tos__navlist a:hover{text-decoration:underline !important;}
body.mv2 .mv-tos__navlist a::before,
body.mv2 .mv-tos__navlist a::after{content:none !important;display:none !important;}

/* ---- THE DOCUMENT: Times New Roman ---- */
body.mv2 .mv-tos__body{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.72;color:#1c1c20;
  max-width:74ch;
}
body.mv2 .mv-tos__section{
  scroll-margin-top:96px;
  padding:0 0 6px;margin:0 0 34px;
}
body.mv2 .mv-tos__h2{
  font-family:'Times New Roman',Times,serif !important;
  font-size:23px !important;font-weight:700 !important;
  line-height:1.3 !important;color:#0f0f12 !important;
  margin:0 0 14px !important;padding:0 0 9px !important;
  border-bottom:1px solid #E4E4E8;
}
body.mv2 .mv-tos__body p{
  font-family:'Times New Roman',Times,serif !important;
  font-size:17.5px !important;line-height:1.72 !important;
  color:#1c1c20 !important;margin:0 0 15px !important;
  text-align:justify;hyphens:auto;
}
body.mv2 .mv-tos__body strong{font-weight:700;color:#0f0f12;}
body.mv2 .mv-tos__body em{font-style:italic;}
body.mv2 .mv-tos__list{
  list-style:disc !important;
  margin:0 0 16px !important;padding:0 0 0 26px !important;
}
body.mv2 .mv-tos__list li{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.66;color:#1c1c20;
  margin:0 0 9px !important;padding:0 !important;
}
body.mv2 .mv-tos__list li::marker{color:#8a8a93;}
body.mv2 .mv-tos__body a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:underline !important;
}
/* mailing address block */
body.mv2 .mv-tos__addr{
  font-family:'Times New Roman',Times,serif;
  font-size:17px;line-height:1.6;color:#1c1c20;font-style:normal;
  margin:0 0 16px !important;padding:12px 0 12px 20px !important;
  border-left:3px solid var(--mv-purple-50,#F5EDFC);
  background:transparent;
}
/* closing acknowledgement */
body.mv2 .mv-tos__ack{
  font-family:'Times New Roman',Times,serif !important;
  font-size:16.5px !important;font-style:italic;
  color:#4a4a52 !important;
  margin:36px 0 0 !important;padding:20px 0 0 !important;
  border-top:1px solid #E4E4E8;text-align:left !important;
}

/* ---- tablet / phone ---- */
@media (max-width:900px){
  body.mv2 .mv-tos__grid{grid-template-columns:1fr;gap:24px;}
  body.mv2 .mv-tos__nav{
    position:static;border-right:none;padding-right:0;
    border-bottom:1px solid #E4E4E8;padding-bottom:18px;margin-bottom:6px;
  }
  body.mv2 .mv-tos__navlist{columns:2;column-gap:26px;}
}
@media (max-width:600px){
  body.mv2 .mv-tos__navlist{columns:1;}
  body.mv2 .mv-tos__body,
  body.mv2 .mv-tos__body p,
  body.mv2 .mv-tos__list li{font-size:16.5px !important;}
  body.mv2 .mv-tos__body p{text-align:left;}
  body.mv2 .mv-tos__meta{gap:10px 24px;}
}

/* MV2 TERMS CONSENT 2026-07-23 - the required agree-to-terms tick on Create Account.
   Registration previously had only a PASSIVE privacy notice; the arbitration clause in the
   new Terms needs affirmative agreement, so this is a real checkbox that blocks submission. */
body.mv2 .mv2-consent{
  margin:4px 0 18px !important;padding:14px 16px !important;
  background:var(--mv-purple-50,#F5EDFC);
  border:1px solid #E9DAF8;border-radius:12px;
}
body.mv2 .mv2-consent__label{
  display:flex !important;align-items:flex-start;gap:11px;
  margin:0 !important;cursor:pointer;
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:14px !important;font-weight:400 !important;
  line-height:1.5 !important;color:#3d3d44 !important;
}
body.mv2 .mv2-consent__cb{
  flex:0 0 auto;width:20px;height:20px;margin:1px 0 0 !important;
  accent-color:var(--mv-purple,#8300E9);cursor:pointer;
}
body.mv2 .mv2-consent__txt{flex:1 1 auto;min-width:0;}
body.mv2 .mv2-consent a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:underline !important;font-weight:600;
}
body.mv2 .mv2-consent a::before,
body.mv2 .mv2-consent a::after{content:none !important;display:none !important;}
body.mv2 .mv2-consent .required{
  color:#B3261E;text-decoration:none;border:none;
}

/* MV2 PRIVACY POLICY 2026-07-23 - same treatment as the Terms page, cloned from that block so the two legal pages stay identical. - Matt: "Times New Roman, that very lawyer professional look."
   Purple hero + v2 header are KEPT so the page still reads as part of the site; the DOCUMENT
   BODY switches to a serif legal treatment. Sticky contents rail like the shipping page. */
body.mv2 .mv-pp{
  background:#fff;
  padding:0 0 var(--mv-s7,4.5rem);
}
body.mv2 .mv-pp__inner{
  max-width:1180px;margin:0 auto;padding:0 24px;
}

/* ---- HEADER: purple band, sans display title (site voice) ---- */
body.mv2 .mv-pp__head{
  background:linear-gradient(135deg,#4C1D95 0%,#6D28D9 55%,#7C3AED 100%);
  border-radius:0 0 18px 18px;
  padding:clamp(38px,4.5vw,72px) clamp(24px,3vw,56px) clamp(30px,3.5vw,52px);
  margin:0 0 clamp(32px,3.5vw,56px);
  color:#fff;
}
body.mv2 .mv-pp__title{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:clamp(38px,5vw,76px) !important;
  font-weight:700 !important;line-height:1.05 !important;
  letter-spacing:.01em;text-transform:uppercase;
  color:#fff !important;margin:0 0 18px !important;padding:0 !important;
}
body.mv2 .mv-pp__meta{
  display:flex;flex-wrap:wrap;gap:10px 40px;margin:0;padding:0;
}
body.mv2 .mv-pp__metarow{display:flex;flex-direction:column;gap:2px;}
body.mv2 .mv-pp__meta dt{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.72);margin:0;
}
body.mv2 .mv-pp__meta dd{
  font-family:'Times New Roman',Times,serif;
  font-size:18px;color:var(--mv-purple-50,#F5EDFC);margin:0;
}

/* ---- LAYOUT: sticky contents rail + document ---- */
body.mv2 .mv-pp__grid{
  display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(28px,3vw,56px);
  align-items:start;
}
body.mv2 .mv-pp__nav{
  position:sticky;top:96px;
  border-right:1px solid #E4E4E8;padding-right:22px;
}
body.mv2 .mv-pp__navtitle{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:11.5px !important;font-weight:700 !important;
  letter-spacing:.1em;text-transform:uppercase;
  color:#7c6a8c !important;margin:0 0 12px !important;
}
body.mv2 .mv-pp__navlist{
  list-style:decimal !important;margin:0 !important;padding:0 0 0 20px !important;
  counter-reset:none;
}
body.mv2 .mv-pp__navlist li{
  margin:0 0 7px !important;padding:0 !important;
  font-family:'Times New Roman',Times,serif;
  font-size:14.5px;line-height:1.35;color:#6b6b73;
}
body.mv2 .mv-pp__navlist li::marker{color:#a99bb8;font-size:12.5px;}
body.mv2 .mv-pp__navlist a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:none !important;
}
body.mv2 .mv-pp__navlist a:hover{text-decoration:underline !important;}
body.mv2 .mv-pp__navlist a::before,
body.mv2 .mv-pp__navlist a::after{content:none !important;display:none !important;}

/* ---- THE DOCUMENT: Times New Roman ---- */
body.mv2 .mv-pp__body{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.72;color:#1c1c20;
  max-width:74ch;
}
body.mv2 .mv-pp__section{
  scroll-margin-top:96px;
  padding:0 0 6px;margin:0 0 34px;
}
body.mv2 .mv-pp__h2{
  font-family:'Times New Roman',Times,serif !important;
  font-size:23px !important;font-weight:700 !important;
  line-height:1.3 !important;color:#0f0f12 !important;
  margin:0 0 14px !important;padding:0 0 9px !important;
  border-bottom:1px solid #E4E4E8;
}
body.mv2 .mv-pp__body p{
  font-family:'Times New Roman',Times,serif !important;
  font-size:17.5px !important;line-height:1.72 !important;
  color:#1c1c20 !important;margin:0 0 15px !important;
  text-align:justify;hyphens:auto;
}
body.mv2 .mv-pp__body strong{font-weight:700;color:#0f0f12;}
body.mv2 .mv-pp__body em{font-style:italic;}
body.mv2 .mv-pp__list{
  list-style:disc !important;
  margin:0 0 16px !important;padding:0 0 0 26px !important;
}
body.mv2 .mv-pp__list li{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.66;color:#1c1c20;
  margin:0 0 9px !important;padding:0 !important;
}
body.mv2 .mv-pp__list li::marker{color:#8a8a93;}
body.mv2 .mv-pp__body a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:underline !important;
}
/* mailing address block */
body.mv2 .mv-pp__addr{
  font-family:'Times New Roman',Times,serif;
  font-size:17px;line-height:1.6;color:#1c1c20;font-style:normal;
  margin:0 0 16px !important;padding:12px 0 12px 20px !important;
  border-left:3px solid var(--mv-purple-50,#F5EDFC);
  background:transparent;
}
/* closing acknowledgement */
body.mv2 .mv-pp__ack{
  font-family:'Times New Roman',Times,serif !important;
  font-size:16.5px !important;font-style:italic;
  color:#4a4a52 !important;
  margin:36px 0 0 !important;padding:20px 0 0 !important;
  border-top:1px solid #E4E4E8;text-align:left !important;
}

/* ---- tablet / phone ---- */
@media (max-width:900px){
  body.mv2 .mv-pp__grid{grid-template-columns:1fr;gap:24px;}
  body.mv2 .mv-pp__nav{
    position:static;border-right:none;padding-right:0;
    border-bottom:1px solid #E4E4E8;padding-bottom:18px;margin-bottom:6px;
  }
  body.mv2 .mv-pp__navlist{columns:2;column-gap:26px;}
}
@media (max-width:600px){
  body.mv2 .mv-pp__navlist{columns:1;}
  body.mv2 .mv-pp__body,
  body.mv2 .mv-pp__body p,
  body.mv2 .mv-pp__list li{font-size:16.5px !important;}
  body.mv2 .mv-pp__body p{text-align:left;}
  body.mv2 .mv-pp__meta{gap:10px 24px;}
}

/* MV2 TERMS OF SALE 2026-07-24 - cloned from the Terms block so all three legal pages stay identical. - Matt: "Times New Roman, that very lawyer professional look."
   Purple hero + v2 header are KEPT so the page still reads as part of the site; the DOCUMENT
   BODY switches to a serif legal treatment. Sticky contents rail like the shipping page. */
body.mv2 .mv-sale{
  background:#fff;
  padding:0 0 var(--mv-s7,4.5rem);
}
body.mv2 .mv-sale__inner{
  max-width:1180px;margin:0 auto;padding:0 24px;
}

/* ---- HEADER: purple band, sans display title (site voice) ---- */
body.mv2 .mv-sale__head{
  background:linear-gradient(135deg,#4C1D95 0%,#6D28D9 55%,#7C3AED 100%);
  border-radius:0 0 18px 18px;
  padding:clamp(38px,4.5vw,72px) clamp(24px,3vw,56px) clamp(30px,3.5vw,52px);
  margin:0 0 clamp(32px,3.5vw,56px);
  color:#fff;
}
body.mv2 .mv-sale__title{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:clamp(38px,5vw,76px) !important;
  font-weight:700 !important;line-height:1.05 !important;
  letter-spacing:.01em;text-transform:uppercase;
  color:#fff !important;margin:0 0 18px !important;padding:0 !important;
}
body.mv2 .mv-sale__meta{
  display:flex;flex-wrap:wrap;gap:10px 40px;margin:0;padding:0;
}
body.mv2 .mv-sale__metarow{display:flex;flex-direction:column;gap:2px;}
body.mv2 .mv-sale__meta dt{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.72);margin:0;
}
body.mv2 .mv-sale__meta dd{
  font-family:'Times New Roman',Times,serif;
  font-size:18px;color:var(--mv-purple-50,#F5EDFC);margin:0;
}

/* ---- LAYOUT: sticky contents rail + document ---- */
body.mv2 .mv-sale__grid{
  display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(28px,3vw,56px);
  align-items:start;
}
body.mv2 .mv-sale__nav{
  position:sticky;top:96px;
  border-right:1px solid #E4E4E8;padding-right:22px;
}
body.mv2 .mv-sale__navtitle{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:11.5px !important;font-weight:700 !important;
  letter-spacing:.1em;text-transform:uppercase;
  color:#7c6a8c !important;margin:0 0 12px !important;
}
body.mv2 .mv-sale__navlist{
  list-style:decimal !important;margin:0 !important;padding:0 0 0 20px !important;
  counter-reset:none;
}
body.mv2 .mv-sale__navlist li{
  margin:0 0 7px !important;padding:0 !important;
  font-family:'Times New Roman',Times,serif;
  font-size:14.5px;line-height:1.35;color:#6b6b73;
}
body.mv2 .mv-sale__navlist li::marker{color:#a99bb8;font-size:12.5px;}
body.mv2 .mv-sale__navlist a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:none !important;
}
body.mv2 .mv-sale__navlist a:hover{text-decoration:underline !important;}
body.mv2 .mv-sale__navlist a::before,
body.mv2 .mv-sale__navlist a::after{content:none !important;display:none !important;}

/* ---- THE DOCUMENT: Times New Roman ---- */
body.mv2 .mv-sale__body{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.72;color:#1c1c20;
  max-width:74ch;
}
body.mv2 .mv-sale__section{
  scroll-margin-top:96px;
  padding:0 0 6px;margin:0 0 34px;
}
body.mv2 .mv-sale__h2{
  font-family:'Times New Roman',Times,serif !important;
  font-size:23px !important;font-weight:700 !important;
  line-height:1.3 !important;color:#0f0f12 !important;
  margin:0 0 14px !important;padding:0 0 9px !important;
  border-bottom:1px solid #E4E4E8;
}
body.mv2 .mv-sale__body p{
  font-family:'Times New Roman',Times,serif !important;
  font-size:17.5px !important;line-height:1.72 !important;
  color:#1c1c20 !important;margin:0 0 15px !important;
  text-align:justify;hyphens:auto;
}
body.mv2 .mv-sale__body strong{font-weight:700;color:#0f0f12;}
body.mv2 .mv-sale__body em{font-style:italic;}
body.mv2 .mv-sale__list{
  list-style:disc !important;
  margin:0 0 16px !important;padding:0 0 0 26px !important;
}
body.mv2 .mv-sale__list li{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.66;color:#1c1c20;
  margin:0 0 9px !important;padding:0 !important;
}
body.mv2 .mv-sale__list li::marker{color:#8a8a93;}
body.mv2 .mv-sale__body a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:underline !important;
}
/* mailing address block */
body.mv2 .mv-sale__addr{
  font-family:'Times New Roman',Times,serif;
  font-size:17px;line-height:1.6;color:#1c1c20;font-style:normal;
  margin:0 0 16px !important;padding:12px 0 12px 20px !important;
  border-left:3px solid var(--mv-purple-50,#F5EDFC);
  background:transparent;
}
/* closing acknowledgement */
body.mv2 .mv-sale__ack{
  font-family:'Times New Roman',Times,serif !important;
  font-size:16.5px !important;font-style:italic;
  color:#4a4a52 !important;
  margin:36px 0 0 !important;padding:20px 0 0 !important;
  border-top:1px solid #E4E4E8;text-align:left !important;
}

/* ---- tablet / phone ---- */
@media (max-width:900px){
  body.mv2 .mv-sale__grid{grid-template-columns:1fr;gap:24px;}
  body.mv2 .mv-sale__nav{
    position:static;border-right:none;padding-right:0;
    border-bottom:1px solid #E4E4E8;padding-bottom:18px;margin-bottom:6px;
  }
  body.mv2 .mv-sale__navlist{columns:2;column-gap:26px;}
}
@media (max-width:600px){
  body.mv2 .mv-sale__navlist{columns:1;}
  body.mv2 .mv-sale__body,
  body.mv2 .mv-sale__body p,
  body.mv2 .mv-sale__list li{font-size:16.5px !important;}
  body.mv2 .mv-sale__body p{text-align:left;}
  body.mv2 .mv-sale__meta{gap:10px 24px;}
}

/* MV2 SUBSCRIBE AND SAVE 2026-07-24 - cloned from the Terms block. Informational page, same reading treatment as the legal pages. - Matt: "Times New Roman, that very lawyer professional look."
   Purple hero + v2 header are KEPT so the page still reads as part of the site; the DOCUMENT
   BODY switches to a serif legal treatment. Sticky contents rail like the shipping page. */
body.mv2 .mv-sas{
  background:#fff;
  padding:0 0 var(--mv-s7,4.5rem);
}
body.mv2 .mv-sas__inner{
  max-width:1180px;margin:0 auto;padding:0 24px;
}

/* ---- HEADER: purple band, sans display title (site voice) ---- */
body.mv2 .mv-sas__head{
  background:linear-gradient(135deg,#4C1D95 0%,#6D28D9 55%,#7C3AED 100%);
  border-radius:0 0 18px 18px;
  padding:clamp(38px,4.5vw,72px) clamp(24px,3vw,56px) clamp(30px,3.5vw,52px);
  margin:0 0 clamp(32px,3.5vw,56px);
  color:#fff;
}
body.mv2 .mv-sas__title{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:clamp(38px,5vw,76px) !important;
  font-weight:700 !important;line-height:1.05 !important;
  letter-spacing:.01em;text-transform:uppercase;
  color:#fff !important;margin:0 0 18px !important;padding:0 !important;
}
body.mv2 .mv-sas__meta{
  display:flex;flex-wrap:wrap;gap:10px 40px;margin:0;padding:0;
}
body.mv2 .mv-sas__metarow{display:flex;flex-direction:column;gap:2px;}
body.mv2 .mv-sas__meta dt{
  font-family:var(--mv-font-body,'Open Sans',sans-serif);
  font-size:11.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  color:rgba(255,255,255,.72);margin:0;
}
body.mv2 .mv-sas__meta dd{
  font-family:'Times New Roman',Times,serif;
  font-size:18px;color:var(--mv-purple-50,#F5EDFC);margin:0;
}

/* ---- LAYOUT: sticky contents rail + document ---- */
body.mv2 .mv-sas__grid{
  display:grid;grid-template-columns:270px minmax(0,1fr);gap:clamp(28px,3vw,56px);
  align-items:start;
}
body.mv2 .mv-sas__nav{
  position:sticky;top:96px;
  border-right:1px solid #E4E4E8;padding-right:22px;
}
body.mv2 .mv-sas__navtitle{
  font-family:var(--mv-font-body,'Open Sans',sans-serif) !important;
  font-size:11.5px !important;font-weight:700 !important;
  letter-spacing:.1em;text-transform:uppercase;
  color:#7c6a8c !important;margin:0 0 12px !important;
}
body.mv2 .mv-sas__navlist{
  list-style:decimal !important;margin:0 !important;padding:0 0 0 20px !important;
  counter-reset:none;
}
body.mv2 .mv-sas__navlist li{
  margin:0 0 7px !important;padding:0 !important;
  font-family:'Times New Roman',Times,serif;
  font-size:14.5px;line-height:1.35;color:#6b6b73;
}
body.mv2 .mv-sas__navlist li::marker{color:#a99bb8;font-size:12.5px;}
body.mv2 .mv-sas__navlist a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:none !important;
}
body.mv2 .mv-sas__navlist a:hover{text-decoration:underline !important;}
body.mv2 .mv-sas__navlist a::before,
body.mv2 .mv-sas__navlist a::after{content:none !important;display:none !important;}

/* ---- THE DOCUMENT: Times New Roman ---- */
body.mv2 .mv-sas__body{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.72;color:#1c1c20;
  max-width:74ch;
}
body.mv2 .mv-sas__section{
  scroll-margin-top:96px;
  padding:0 0 6px;margin:0 0 34px;
}
body.mv2 .mv-sas__h2{
  font-family:'Times New Roman',Times,serif !important;
  font-size:23px !important;font-weight:700 !important;
  line-height:1.3 !important;color:#0f0f12 !important;
  margin:0 0 14px !important;padding:0 0 9px !important;
  border-bottom:1px solid #E4E4E8;
}
body.mv2 .mv-sas__body p{
  font-family:'Times New Roman',Times,serif !important;
  font-size:17.5px !important;line-height:1.72 !important;
  color:#1c1c20 !important;margin:0 0 15px !important;
  text-align:justify;hyphens:auto;
}
body.mv2 .mv-sas__body strong{font-weight:700;color:#0f0f12;}
body.mv2 .mv-sas__body em{font-style:italic;}
body.mv2 .mv-sas__list{
  list-style:disc !important;
  margin:0 0 16px !important;padding:0 0 0 26px !important;
}
body.mv2 .mv-sas__list li{
  font-family:'Times New Roman',Times,serif;
  font-size:17.5px;line-height:1.66;color:#1c1c20;
  margin:0 0 9px !important;padding:0 !important;
}
body.mv2 .mv-sas__list li::marker{color:#8a8a93;}
body.mv2 .mv-sas__body a{
  color:var(--mv-purple-deep,#672B91) !important;
  -webkit-text-fill-color:var(--mv-purple-deep,#672B91) !important;
  text-decoration:underline !important;
}
/* mailing address block */
body.mv2 .mv-sas__addr{
  font-family:'Times New Roman',Times,serif;
  font-size:17px;line-height:1.6;color:#1c1c20;font-style:normal;
  margin:0 0 16px !important;padding:12px 0 12px 20px !important;
  border-left:3px solid var(--mv-purple-50,#F5EDFC);
  background:transparent;
}
/* closing acknowledgement */
body.mv2 .mv-sas__ack{
  font-family:'Times New Roman',Times,serif !important;
  font-size:16.5px !important;font-style:italic;
  color:#4a4a52 !important;
  margin:36px 0 0 !important;padding:20px 0 0 !important;
  border-top:1px solid #E4E4E8;text-align:left !important;
}

/* ---- tablet / phone ---- */
@media (max-width:900px){
  body.mv2 .mv-sas__grid{grid-template-columns:1fr;gap:24px;}
  body.mv2 .mv-sas__nav{
    position:static;border-right:none;padding-right:0;
    border-bottom:1px solid #E4E4E8;padding-bottom:18px;margin-bottom:6px;
  }
  body.mv2 .mv-sas__navlist{columns:2;column-gap:26px;}
}
@media (max-width:600px){
  body.mv2 .mv-sas__navlist{columns:1;}
  body.mv2 .mv-sas__body,
  body.mv2 .mv-sas__body p,
  body.mv2 .mv-sas__list li{font-size:16.5px !important;}
  body.mv2 .mv-sas__body p{text-align:left;}
  body.mv2 .mv-sas__meta{gap:10px 24px;}
}

/* MV2 ACCOUNT TABLET GAPS START */
/* ---------------------------------------------------------------------------
 * Two gaps that showed up at tablet width, both from rules colliding in the
 * 768-980px band.
 *
 * 1. (WITHDRAWN - see the note below. The left column is the Quick Links rail,
 *    not a dead nav track, so collapsing it was wrong.)
 *
 * 2. THE SLITS IN THE TABLE HEADER. (min-width:768px) and (max-width:1199px)
 *    lays each row out as a grid with column-gap:8px. The header cells carry a
 *    tinted background, so that gap renders as white slits through the bar.
 *    The gap is removed from BOTH thead and tbody rows - changing only one
 *    would shift its tracks and misalign the header from the body - and the
 *    cell padding is widened to keep the same breathing room.
 * ------------------------------------------------------------------------- */
/* REVERTED 2026-07-24. The one-column override that used to live here was based
 * on a WRONG diagnosis: the left column is NOT a dead nav track, it is the Quick
 * Links rail (.mv-quick, grid-column 1), and .woocommerce-MyAccount-content is
 * explicitly placed in grid-column 2. Forcing a single track therefore pushed the
 * content into an IMPLICIT track that competed with the rail for width, and the
 * split landed differently per page - dashboard 370/415, view-subscription 0/785.
 * Tablet is back to the design system's own 280px 1fr until the tablet layout is
 * decided deliberately (stack the rail, or keep two columns). The header-slit fix
 * below is independent and stays. */
@media (min-width:768px) and (max-width:1199px){
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead tr,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody tr{
  column-gap:0 !important;}
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead th,
body.mv2.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody td{
  padding-left:14px !important;padding-right:14px !important;}
}
/* MV2 ACCOUNT TABLET GAPS END */

/* MV2 HOME HERO FEATURES START */
/* ---------------------------------------------------------------------------
 * DESKTOP ONLY (>=981px): the three hero features become a single 3-up row and
 * move ABOVE the Shop button.
 *
 * WHY THEY STACK TWO LINES: the copy column is 542px, so three columns with a
 * 14px gap gives 171px each. "Plant-Based Glucosamine" measures 202px at the
 * current 16px, so ONE LINE PER ITEM IS IMPOSSIBLE AT ANY READABLE SIZE. At 15px
 * the longest single word is ~100px, which fits, and each title wraps to at most
 * two lines. Subtitles stay on one line - the widest, "In the continental US",
 * is ~127px at 13px.
 *
 * THE REORDER IS CSS, NOT MARKUP, so phone and tablet keep the existing order
 * (features below the button) untouched. .mv-hero__copy becomes a flex column
 * here and every child is given an explicit order.
 *
 * .mv-hero__cta NEEDS align-self:flex-start - flex children stretch by default,
 * and without it the 136px button would run the full 542px width.
 * ------------------------------------------------------------------------- */
@media (min-width:981px){
body.mv2 .mv-hero__copy{display:flex;flex-direction:column;}
body.mv2 .mv-hero__eyebrow{order:1;}
body.mv2 .mv-hero__title{order:2;}
body.mv2 .mv-hero__sub{order:3;}
body.mv2 .mv-hero__features{order:4;
  /* HERO TEXT SIDE -5%: 1fr 1fr forced 320px columns at 1920 while item one's text is
     only 191px, leaving a 141px void. Content-sized columns plus an explicit gap
     halve it to ~70px, and the divider Matt's mockup shows sits on the second
     item - the same rule the tablet row already uses. */
  display:grid;grid-template-columns:max-content max-content;justify-content:start;
  column-gap:clamp(24px,1.9vw,46px);row-gap:12px;width:100%;margin:4px 0 28px;
  /* the <ul> carries a 17px list indent; zeroing it here (bottom padding kept)
     plus the tighter gaps gives each title 207px of room against the 203px it
     needs at 16px, so BOTH titles sit on one line at the EXISTING size. */
  padding-left:0;}
body.mv2 .mv-hero__cta{order:5;align-self:flex-start;}
body.mv2 .mv-hero__features .mv-hf + .mv-hf{
  border-left:1px solid rgba(255,255,255,.18);
  padding-left:clamp(24px,1.9vw,46px);}
/* TWO items, so the ORIGINAL row shape fits: icon beside the text, title on
   top, smaller subtitle beneath it. With 494px of column and a 14px gap each
   item gets 240px; minus the 24px icon and its 12px gap that leaves 204px of
   text, and "Plant-Based Glucosamine" measures ~190px at 15px - so both titles
   now sit on ONE line and the subtitles line up without any height reservation.
   The base .mv-hf row layout is therefore left alone. */
body.mv2 .mv-hf__icon{flex:0 0 auto;}
/* NO font-size rules here on purpose. The HERO FLUID v2 block already sets
   `.mv-hero__features .mv-hf__t` to clamp(16px,1.15vw,34px) with !important at
   higher specificity, so anything written at this specificity is DEAD CODE - an
   earlier attempt at clamp(15px,...) here never applied. The fit is solved with
   SPACE instead, which also leaves the large-resolution scaling untouched. */
body.mv2 .mv-hf{gap:10px;}
}
/* HERO TEXT SIDE -5% - TABLET AND PHONE: the drop goes BELOW the two features.
   Desktop already does this with order 1-5; below 981 every child was order:0 so
   they followed DOM order (CTA then features). Same ordering, applied here. */
@media (max-width:980px){
body.mv2 .mv-hero__copy{display:flex;flex-direction:column;}
body.mv2 .mv-hero__eyebrow{order:1;}
body.mv2 .mv-hero__title{order:2;}
body.mv2 .mv-hero__sub{order:3;}
body.mv2 .mv-hero__features{order:4;}
body.mv2 .mv-hero__cta{order:5;align-self:flex-start;}
}
/* MV2 HOME HERO FEATURES END */

/* MV2 HERO CTA WATER DROP START */
/* ---------------------------------------------------------------------------
 * The Shop-now CTA becomes a falling water drop.
 *
 * SHAPE: a square with three round corners and one sharp one
 * (border-radius:0 50% 50% 50%, sharp = top-left) rotated 45deg, which swings
 * that sharp corner to the TOP. The label sits in an inner span counter-rotated
 * -45deg so it stays level - the <a> has no other child, hence the new span.
 *
 * SIZE IS FLUID, not fixed: the HERO FLUID v2 block grows the CTA with the
 * viewport using !important, so a fixed px size would both lose that fight and
 * strand the button at one size on large screens. clamp(104px,8vw,200px) keeps
 * the growth. !important is required to beat that block's padding rule.
 *
 * THE FALL uses an ANIMATION, not a transition, and deliberately has NO
 * fill-mode: when it finishes the drop snaps back to its place. That is the
 * "falls through the bottom, then reappears" behaviour - unseen, because the
 * click handler has already scrolled to the products by then.
 *
 * TRANSFORM ORDER MATTERS: translateY(...) rotate(45deg), in that order. Written
 * the other way round the translation would run along the ROTATED axis and the
 * drop would fall diagonally.
 *
 * The confetti bubble layers are switched off here. The class the click handler
 * adds is still called .mv-confetti - that is now a misnomer, kept so the
 * existing JS (preventDefault, reflow, add class, navigate after 650ms) does not
 * have to change.
 * ------------------------------------------------------------------------- */
body.mv2 .mv-hero__cta{
  width:clamp(104px,8vw,200px) !important;
  height:clamp(104px,8vw,200px) !important;
  padding:0 !important;
  border-radius:0 50% 50% 50% !important;
  transform:rotate(45deg);
  display:inline-flex;align-items:center;justify-content:center;
  overflow:visible;margin-top:26px;}
body.mv2 .mv-hero__cta-in{
  display:block;transform:rotate(-45deg);white-space:nowrap;line-height:1;}
body.mv2 .mv-hero__cta::before,
body.mv2 .mv-hero__cta::after{display:none !important;}
@keyframes mvDropFall{
  0%{transform:translateY(0) rotate(45deg);}
  100%{transform:translateY(105vh) rotate(45deg);}}
body.mv2 .mv-hero__cta.mv-confetti{
  animation:mvDropFall 1.25s cubic-bezier(.55,.06,.68,.19) forwards;}
@media (prefers-reduced-motion:reduce){
body.mv2 .mv-hero__cta.mv-confetti{animation:none;}}
/* Phone -5% (Matt). It has to live HERE, at the end of the drop block:
   an earlier @media rule with the SAME selector and !important still LOSES,
   because equal specificity is broken by source order and this block sits
   ~4600 lines further down. 8vw is inactive at phone widths (31px at 390),
   so the 104px FLOOR is the number that had to move, not the vw. */
@media (max-width:599px){
body.mv2 .mv-hero__cta{width:99px !important;height:99px !important;}
}
/* MV2 HERO CTA WATER DROP END */

/* MV2 HERO CTA SPLASH START */
/* ---------------------------------------------------------------------------
 * The drop falls to the hero's bottom edge and SPLASHES there.
 *
 * .mv-hero is overflow:hidden because it crops the bottle stack, so nothing can
 * leave the card. Rather than fight that, the clip IS the waterline. The button
 * stays IN FLOW and moves only with transform - an earlier position:fixed
 * attempt pulled it out and everything above collapsed into the gap.
 *
 * TIMING IS SPLIT INTO TWO ANIMATIONS ON PURPOSE. The first version put the
 * landing at an interior keyframe (86%) and the squash at 94%, which made the
 * moment of impact hard to reason about - the splash fired while the drop was
 * still 109px short. Now the fall ENDS at the landing, and the squash plus
 * the droplets all start at exactly that same delay, so they cannot drift.
 * Change the fall duration and you must change the two delays with it.
 *
 * TRANSFORM ORDER: translateY() scale() rotate(). The rotate is applied FIRST
 * (rightmost), so the scale acts in SCREEN axes and the squash flattens
 * vertically. The other order squashes along the 45deg diagonal.
 * ------------------------------------------------------------------------- */
@keyframes mvDropFall{
  0%{transform:translateY(0) scale(1) rotate(45deg);}
  14%{transform:translateY(-14px) scale(1) rotate(45deg);}
  100%{transform:translateY(var(--mv-drop-fall,200px)) scale(1) rotate(45deg);}}
@keyframes mvDropSquash{
  0%{transform:translateY(var(--mv-drop-fall,200px)) scale(1) rotate(45deg);opacity:1;}
  38%{transform:translateY(var(--mv-drop-fall,200px)) scale(1.3,.62) rotate(45deg);opacity:1;}
  100%{transform:translateY(var(--mv-drop-fall,200px)) scale(.58,.28) rotate(45deg);opacity:0;}}
body.mv2 .mv-hero__cta.mv-confetti{
  animation:mvDropFall 1.15s cubic-bezier(.55,.06,.68,.19) forwards,
            mvDropSquash .36s ease-out 1.15s forwards;}

/* the crown: six droplets of DIFFERENT sizes, two of them brighter, plus a
   ripple along the surface. Varied size and a couple of lighter drops stop the
   burst reading as six identical dots. */
body.mv2 .mv-hero__splash{
  position:absolute;bottom:0;width:0;height:0;
  pointer-events:none;z-index:5;}
body.mv2 .mv-hero__splash i{
  position:absolute;left:0;bottom:0;
  width:var(--sz,11px);height:var(--sz,11px);margin-left:calc(var(--sz,11px)/-2);
  border-radius:50%;background:var(--mv-purple,#8300E9);opacity:0;
  animation:mvSplashArc .54s cubic-bezier(.2,.7,.4,1) 1.15s forwards;}
body.mv2 .mv-hero__splash i:nth-child(1){--dx:-93px;--dy:-96px;--ds:.55;--sz:26px;}
body.mv2 .mv-hero__splash i:nth-child(2){--dx:-53px;--dy:-149px;--ds:.40;--sz:9px;background:#B347FF;}
body.mv2 .mv-hero__splash i:nth-child(3){--dx:-17px;--dy:-175px;--ds:.30;--sz:7px;animation-delay:1.16s;}
body.mv2 .mv-hero__splash i:nth-child(4){--dx:24px;--dy:-157px;--ds:.34;--sz:32px;background:#9A1FFF;animation-delay:1.18s;}
body.mv2 .mv-hero__splash i:nth-child(5){--dx:61px;--dy:-126px;--ds:.44;--sz:12px;background:#C77DFF;}
body.mv2 .mv-hero__splash i:nth-child(6){--dx:100px;--dy:-82px;--ds:.58;--sz:20px;animation-delay:1.19s;}
/* Three more, taking the count from six to nine. Placed BETWEEN the existing
   trajectories so the fan reads denser rather than doubled. */
body.mv2 .mv-hero__splash i:nth-child(7){--dx:-74px;--dy:-137px;--ds:.36;--sz:11px;background:#C77DFF;animation-delay:1.17s;}
body.mv2 .mv-hero__splash i:nth-child(8){--dx:3px;--dy:-194px;--ds:.26;--sz:8px;animation-delay:1.15s;}
body.mv2 .mv-hero__splash i:nth-child(9){--dx:82px;--dy:-112px;--ds:.48;--sz:10px;background:#B347FF;animation-delay:1.185s;}
/* 10-13 added 2026-07-31 (Matt: bigger splash, a few more particles, 25%
   higher). The nine originals had their --dy scaled x1.25 and --dx x1.15 -
   raising the arc without widening it would have read as a column, not a
   crown. These four fill the gaps in the existing spread rather than sitting
   on top of it, and keep the same delay window (.70-.75s) so impact and splash
   still cannot drift. ⚠ THE DELAYS MUST STAY TIED TO THE FALL DURATION. */
.mv-hero__splash i:nth-child(10){--dx:-104px;--dy:-120px;--ds:.42;--sz:13px;background:#C77DFF;animation-delay:1.17s;}
.mv-hero__splash i:nth-child(11){--dx:38px;--dy:-182px;--ds:.24;--sz:9px;animation-delay:1.15s;}
.mv-hero__splash i:nth-child(12){--dx:-33px;--dy:-167px;--ds:.28;--sz:11px;background:#B347FF;animation-delay:1.18s;}
.mv-hero__splash i:nth-child(13){--dx:112px;--dy:-110px;--ds:.50;--sz:24px;animation-delay:1.16s;}

@keyframes mvSplashArc{
  0%{transform:translate(0,0) scale(.3);opacity:1;}
  45%{transform:translate(calc(var(--dx)*.62),var(--dy)) scale(1);opacity:1;}
  100%{transform:translate(var(--dx),calc(var(--dy)*.18)) scale(var(--ds,.5));opacity:0;}}
body.mv2 .mv-hero__splash::after{
  content:"";position:absolute;left:0;bottom:-3px;width:16px;height:16px;margin-left:-8px;
  border:2px solid rgba(131,0,233,.5);border-radius:50%;opacity:0;
  animation:mvSplashRing .58s ease-out 1.15s forwards;}
@keyframes mvSplashRing{
  0%{transform:scale(.3,.14);opacity:.9;}
  100%{transform:scale(4.6,1.15);opacity:0;}}
@media (prefers-reduced-motion:reduce){
body.mv2 .mv-hero__cta.mv-confetti{animation:none;}
body.mv2 .mv-hero__splash{display:none;}}
/* MV2 HERO CTA SPLASH END */

/* MV2 FOOTER THEME START */
/* ---------------------------------------------------------------------------
 * The footer, themed to the rest of the site.
 *
 * WHAT WAS WRONG, MEASURED:
 *   - the column headings computed to #231F20 on #000 — 1.29:1, invisible. This
 *     is the THIRD time the global ink retune has caught a dark section that did
 *     not set its own colour; the hero title went the same way twice.
 *   - body copy was pure white on pure black at weight 300. 21:1 is not "good
 *     contrast", it is halation — thin white on black shimmers, and this store's
 *     buyer is around 65. Softened to ~11:1, which reads calmer and still clears
 *     AA comfortably.
 *   - 918px tall, with a 263px FDA disclaimer as the FIRST thing in it.
 *   - a hard white copyright slab under a black footer.
 *
 * ORDER IS CSS, NOT MARKUP. The footer becomes a flex column and the blocks are
 * reordered so the useful content leads and the legal text follows. That keeps
 * mv2-footer.php untouched — but it DOES depend on the current child order, so
 * if blocks are added to that file these nth-child rules must be revisited.
 * ------------------------------------------------------------------------- */
/* ⚠ THE FLEX COLUMN BROKE `margin:0 auto` ON THE WRAPS.
   Auto margins in a flex container's CROSS AXIS switch off align-items:stretch —
   the item shrink-wraps to its content and the margins centre THAT instead. The
   wraps carry `max-width:1440px; margin:0 auto` from mv2-footer.php, which was
   correct while this element was a plain block, and silently wrong the moment it
   became a flex column for the `order` reshuffle below. The columns had been
   squeezed into ~750px of a 1440px measure. `width:100%` restores the fill while
   keeping the cap and the centring. */
/* ⭐ DIAGNOSED: an uncleared WooCommerce float, not a width rule.
   On single-product pages `.summary.entry-summary` is float:right at 48% and its
   bottom edge (7672px) reaches PAST where the footer begins (7655px). The footer
   is display:flex, which makes it a BLOCK FORMATTING CONTEXT — and a BFC root
   beside an uncleared float is narrowed to the space left over. 2827 x 0.52 =
   1470, exactly what it measured.

   Nothing declared that width; it was a CONSEQUENCE, which is why hunting for a
   width rule found nothing. clear:both restores the containing block. width:100%
   is kept as a belt-and-braces second line, harmless everywhere else.

   Two things individually correct — Woo's float and our flex footer — that only
   misbehave together. Worth remembering before blaming either alone. */
body.mv2 footer.mv-ftr{clear:both;width:100%;}
body.mv2 footer.mv-ftr > .mv-ftr__wrap{width:100%;}

body.mv2 footer.mv-ftr{
  display:flex;flex-direction:column;
  /* the hero's purple, not pure black, so the page ends in the brand rather
     than in a void */
  background:linear-gradient(180deg,#1B0733 0%,#12031F 100%);
  color:rgba(255,255,255,.74);}

body.mv2 footer.mv-ftr > *:nth-child(1){order:4;}   /* FDA disclaimer, demoted */
body.mv2 footer.mv-ftr > *:nth-child(2){order:2;}   /* the three columns */
body.mv2 footer.mv-ftr > *:nth-child(3){order:3;}   /* Follow */
body.mv2 footer.mv-ftr > *:nth-child(4){order:1;}   /* wordmark, leads */
body.mv2 footer.mv-ftr > *:nth-child(5){order:5;}   /* copyright */

/* headings: the actual bug. Explicit colour, and the site's display face
   uppercase, so they match every other section heading. */
body.mv2 .mv-ftr__h{
  color:#fff !important;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif) !important;
  font-size:15px !important;font-weight:600 !important;
  letter-spacing:.14em;text-transform:uppercase;
  margin:0 0 12px !important;}

body.mv2 .mv-ftr__p,
body.mv2 .mv-ftr__link,
body.mv2 .mv-ftr p{
  font-size:15px !important;font-weight:400 !important;line-height:1.65 !important;
  color:rgba(255,255,255,.74) !important;}
body.mv2 .mv-ftr__link{text-decoration:none;transition:color .15s;}
body.mv2 .mv-ftr__link:hover,
body.mv2 .mv-ftr__link:focus-visible{color:#fff !important;text-decoration:underline;}

/* tighten: 918px of footer was a screenful of nothing much */
body.mv2 .mv-ftr__wrap{padding-top:0 !important;padding-bottom:20px !important;}
body.mv2 footer.mv-ftr > *:nth-child(4) .mv-ftr__wrap,
body.mv2 footer.mv-ftr > *:nth-child(4){padding-top:var(--mv-s7,4.5rem) !important;padding-bottom:var(--mv-s7,4.5rem) !important;}
/* aspect-ratio RESERVES the box whether or not the file has loaded.
   The wordmark is lazy-loaded and sits thousands of pixels down the page, so it
   legitimately has no intrinsic size until someone scrolls to it — and `height:auto`
   against no intrinsic size collapses to ZERO. The width/height attributes on the
   tag used to hold that space; overriding them without replacing the reservation is
   what emptied the block. Ratio is the file's own 1351x301. */
body.mv2 .mv-ftr img{width:190px;max-width:100%;height:auto;aspect-ratio:1351/301;opacity:.92;}

/* the legal text earns its place but not the top of the footer */
body.mv2 footer.mv-ftr > *:nth-child(1){
  margin-top:8px;padding-top:20px !important;
  border-top:1px solid rgba(255,255,255,.10);}
body.mv2 footer.mv-ftr > *:nth-child(1) p{
  font-size:12.5px !important;line-height:1.6 !important;
  color:rgba(255,255,255,.46) !important;max-width:82ch;}
body.mv2 footer.mv-ftr > *:nth-child(1) strong{color:rgba(255,255,255,.62) !important;}

/* no white slab; a hairline instead */
/* The copyright now sits IN the pool rather than on a bar above it, so the
   footer ends on the waterline instead of on a rule. The pool is 34px and this
   row is centred in it; the hairline is gone because the pool has its own rim. */
body.mv2 .mv-ftr__copy{
  /* Ordered by CLASS, not by position. The nth-child rules above depend on the
     child list staying as mv2-footer.php renders it, and anything injecting a
     node into the footer breaks them silently. This one cannot drift. */
  order:5;
  background:transparent !important;
  border-top:0 !important;
  min-height:34px;
  padding:0 !important;
  display:flex;align-items:center;}
body.mv2 .mv-ftr__copy .mv-ftr__wrap{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding-top:0 !important;padding-bottom:0 !important;width:100%;}
/* On a phone there is not room for both on one line, and squeezing them makes
   two short lines of small type fight each other. They stack and centre, and
   the row grows to suit rather than the type shrinking. */
@media (max-width:600px){
body.mv2 .mv-ftr__copy{min-height:0;padding:10px 0 !important;}
body.mv2 .mv-ftr__copy .mv-ftr__wrap{
  flex-direction:column;justify-content:center;gap:4px;text-align:center;}
}
body.mv2 .mv-ftr__credit{
  font-size:12.5px !important;margin:0 !important;
  color:rgba(255,255,255,.5) !important;}
body.mv2 .mv-ftr__credit a{
  color:rgba(255,255,255,.62) !important;text-decoration:none;transition:color .15s;}
body.mv2 .mv-ftr__credit a:hover,
body.mv2 .mv-ftr__credit a:focus-visible{color:#fff !important;text-decoration:underline;}
/* The OW mark as type, not an image. PLACEHOLDER ORANGE until Matt confirms the
   exact brand hex. */
body.mv2 .mv-ftr__ow{
  color:#F26522;font-weight:800;letter-spacing:.02em;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);}
/* padding, not just margin. Divi applies `p{padding-bottom:1em}` globally and
   cancels it only on `p:last-of-type` — so in a two-paragraph row the LAST one
   escapes and the first does not. Both boxes then centre correctly while their
   TEXT sits at different heights, because one box is 12.5px taller than its own
   line. That is why the copyright read as top-aligned and the credit did not. */
body.mv2 .mv-ftr__copy p{
  font-size:12.5px !important;color:rgba(255,255,255,.5) !important;
  margin:0 !important;padding:0 !important;}

/* Follow reads as a link, not a stray word */
body.mv2 .mv-ftr__follow{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.74);}

@media (max-width:600px){
body.mv2 .mv-ftr__wrap{padding-bottom:16px !important;}
body.mv2 .mv-ftr img{max-width:150px;}
}
/* MV2 FOOTER THEME END */

/* MV2 CHECKOUT NODIVI START */
/* ---------------------------------------------------------------------------
 * The checkout layout, re-authored for life after Divi.
 *
 * Everything here is scoped to `body.mv2-nodivi`, a class added by
 * mv2-checkout-template.php only when Divi is no longer the active theme. So
 * these rules sit inert until the switch and turn on at the same instant the
 * structure changes. The old Divi-targeting blocks do not need deleting — their
 * selectors simply stop existing.
 *
 * WHAT REPLACED WHAT:
 *   2-COL              -> the grid below, on form.checkout
 *   PANELS             -> the panel rules below, on Woo's own field wrappers
 *   MOBILE/TABLET PAD  -> the single container rule below
 *   MOBILE PANEL BLEED -> NOT NEEDED. It only ever existed to cover a grey
 *                         background the Divi payment module set in the builder.
 *                         No module, no grey, nothing to cover.
 *
 * The other 23 checkout blocks are untouched: they target WooCommerce's own
 * classes and never knew Divi was there.
 * ------------------------------------------------------------------------- */

/* One measure for the page, matching the header's 1440px span. This replaces
   both padding blocks — they only differed because Divi applied padding at
   three levels (section, row, module) and each needed its own correction. */
body.mv2-nodivi.woocommerce-checkout .woocommerce{
  max-width:1440px;margin-left:auto;margin-right:auto;
  padding:var(--mv-s4,24px) 24px 48px;}

/* THE TWO COLUMNS.
   Divi needed a grid on a section with three sibling rows and a span hack.
   Woo hands us the shape directly: customer details on the left across both
   rows, the order heading and review stacked on the right. */
@media (min-width:1100px){
body.mv2-nodivi.woocommerce-checkout form.checkout{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  column-gap:32px;align-items:start;}
body.mv2-nodivi.woocommerce-checkout form.checkout #customer_details{grid-column:1;grid-row:1 / span 2;}
body.mv2-nodivi.woocommerce-checkout form.checkout #order_review_heading{grid-column:2;grid-row:1;margin-top:0;}
body.mv2-nodivi.woocommerce-checkout form.checkout #order_review{grid-column:2;grid-row:2;}
}

/* Billing and shipping stack inside the left column. Woo floats col-1/col-2 in
   some builds, which would put them side by side in an already-narrow column. */
body.mv2-nodivi.woocommerce-checkout #customer_details.col2-set{display:block;}
body.mv2-nodivi.woocommerce-checkout #customer_details .col-1,
body.mv2-nodivi.woocommerce-checkout #customer_details .col-2{width:100%;float:none;}
body.mv2-nodivi.woocommerce-checkout #customer_details .col-2{margin-top:var(--mv-s4,24px);}

/* THE PANELS. The icon-circle headings are NOT repeated here: those rules
   already target Woo's own selectors (.woocommerce-billing-fields > h3,
   h3#ship-to-different-address, h3#order_review_heading) and carry over
   untouched. Only the containers were ever Divi's. */
body.mv2-nodivi.woocommerce-checkout .woocommerce-billing-fields,
body.mv2-nodivi.woocommerce-checkout .woocommerce-shipping-fields,
body.mv2-nodivi.woocommerce-checkout #order_review{
  background:#fff;
  border:1px solid var(--mv-line,#E6E1EA);
  border-radius:12px;
  padding:var(--mv-s4,24px);}
body.mv2-nodivi.woocommerce-checkout .woocommerce-shipping-fields{margin-top:var(--mv-s4,24px);}

/* #order_review holds the review table AND the payment box; the table brings
   its own border from an existing block, so it must not draw a second one
   inside the panel. */
body.mv2-nodivi.woocommerce-checkout #order_review .shop_table{border:0;}

@media (max-width:1099px){
body.mv2-nodivi.woocommerce-checkout .woocommerce{padding-left:15px;padding-right:15px;}
body.mv2-nodivi.woocommerce-checkout form.checkout #order_review_heading{margin-top:var(--mv-s4,24px);}
}
@media (max-width:600px){
body.mv2-nodivi.woocommerce-checkout .woocommerce-billing-fields,
body.mv2-nodivi.woocommerce-checkout .woocommerce-shipping-fields,
body.mv2-nodivi.woocommerce-checkout #order_review{padding:17px;}
}
/* MV2 CHECKOUT NODIVI END */

/* MV2 CHECKOUT NODIVI GATE START */
/* The logged-out gate is currently a Divi text module. Without Divi the sentence
   comes from WooCommerce's own cart-errors template instead, as a standard
   notice — different markup entirely, so it needs its own treatment rather than
   an adapted selector.

   This is written from Woo's standard notice structure and is the ONE piece of
   the post-Divi work that has not been seen rendered. Check it after the switch
   before trusting it. */
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-info,
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-error{
  max-width:560px;margin:var(--mv-s6,48px) auto;
  background:#fff;border:1px solid var(--mv-line,#E6E1EA);
  border-radius:16px;padding:0 0 28px;overflow:hidden;
  text-align:center;font-size:16px;line-height:1.6;}
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-info::before,
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-error::before{
  content:'One quick step before checkout';
  display:block;margin:0 0 22px;padding:18px 24px;
  background:linear-gradient(90deg,#8300E9,#672B91);
  color:#fff;font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:20px;font-weight:600;letter-spacing:.02em;
  position:static;left:auto;top:auto;}
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-info a,
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-error a{
  display:inline-block;margin:14px 6px 0;padding:12px 26px;
  border-radius:10px;text-decoration:none;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-size:16px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;
  background:var(--mv-purple,#8300E9);border:2px solid var(--mv-purple,#8300E9);
  color:#fff;-webkit-text-fill-color:#fff;}
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-info a + a,
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-error a + a{
  background:#fff;color:var(--mv-purple,#8300E9);-webkit-text-fill-color:var(--mv-purple,#8300E9);}
@media (max-width:600px){
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-info a,
body.mv2-nodivi.woocommerce-checkout .woocommerce > .woocommerce-error a{display:block;margin:12px 20px 0;}
}
/* MV2 CHECKOUT NODIVI GATE END */

/* MV2 NODIVI CONTAINERS START */
/* ⚠ .mv-intro IS REUSABLE — .mv-fruits nests one. Unscoped, these rules paid
   72px twice and added 24px of side padding inside fruits, putting its heading
   145px below the last card against 72 elsewhere. The stylesheet already had
   `.mv-fruits .mv-intro{max-width:none}` undoing this exact trap; I repeated it. */

/* ---------------------------------------------------------------------------
 * THE CONTAINER DIVI USED TO PROVIDE.
 *
 * Every v2 section sat inside a Divi ROW, and the row was what held the content
 * to a readable measure. The sections never needed a max-width of their own, so
 * most of them never got one. Remove Divi and they span the viewport: at 2,316px
 * the product grid laid itself out SEVEN columns wide.
 *
 * Only the blocks that lack an inner wrapper need this. .mv-hero, .mv-fruits and
 * .mv-trust each already constrain their own contents (__stage, __in), which is
 * why they came through the switch unharmed — and is the pattern the other two
 * should eventually follow in markup rather than here.
 *
 * 1200px matches .mv-fruits__in and .mv-trust__in so the homepage keeps one
 * measure down its whole length. The header sits at 1440 by design; that is a
 * separate decision and not a mismatch to "fix".
 * ------------------------------------------------------------------------- */
body.mv2-nodivi .mv-grid,
body.mv2-nodivi .ow-main > .mv-intro{
  /* 1440 matches .mv-head__in. At 1200 the usable width was 1152, and four
     280px columns need 1192 — so auto-fit settled on three and stretched them.
     The extra 240px is exactly what the fourth card needed. */
  max-width:1440px;margin-left:auto;margin-right:auto;
  padding-left:24px;padding-right:24px;box-sizing:border-box;}

/* THE SECTION'S VERTICAL RHYTHM, which the Divi section used to supply.
   #shop carried 72px top and bottom — deliberately forced onto the SAME token as
   .mv-fruits so the two would always move together. Without the section the band
   had none at all: the hero butted straight into the intro, and the last row of
   cards butted straight into the fruits. Same token again, for the same reason. */
body.mv2-nodivi .ow-main > .mv-intro{padding-top:var(--mv-s7,4.5rem);}
/* NO padding-bottom here. .mv-fruits already carries its own 72px top — adding
   one below the grid stacked them into 144px, which read as "Nineteen Fruits has
   too much space above it". The section that OWNS the boundary provides the
   padding; the one before it does not. */

/* wpautop wraps the shortcodes and leaves empty paragraphs behind. Harmless
   under Divi, which absorbed them; here they add stray vertical space. */
body.mv2-nodivi .ow-main > p:empty{display:none;}

@media (max-width:600px){
body.mv2-nodivi .mv-grid,
body.mv2-nodivi .ow-main > .mv-intro{padding-left:15px;padding-right:15px;}
}
/* MV2 NODIVI CONTAINERS END */

/* MV2 NODIVI SHOP START */
/* WooCommerce renders the shop page's CONTENT as the archive description — which
   is how [mv2_grid] and [mv2_trust] still appear — and then renders its own
   product loop underneath. Under Divi the Theme Builder layout replaced the whole
   archive so the loop never ran. Here both run, and the catalogue appears twice.

   Hidden rather than unhooked: the loop is what makes this a real product archive
   for WooCommerce's own purposes, and removing it can affect pagination, result
   counts and structured data. Nothing is lost by not painting it. */
body.mv2-nodivi.woocommerce-shop ul.products,
body.mv2-nodivi.woocommerce-shop .woocommerce-result-count,
body.mv2-nodivi.woocommerce-shop .woocommerce-ordering,
body.mv2-nodivi.woocommerce-shop nav.woocommerce-pagination{display:none !important;}
/* MV2 NODIVI SHOP END */

/* MV2 NODIVI PAGETITLE START */
/* The auto-generated <h1> is prepended to the CONTENT, so it lands inside
   .ow-main but OUTSIDE whatever wrapper the content builds for itself —
   .woocommerce on the cart, .mv-ship on shipping, and so on. Left alone it runs
   the full viewport while the thing it labels sits centred at 1180, stranding
   the title far to the left of its own content.

   1180 matches the cart and the product page's inner measure, which is what the
   pages that need an auto-heading actually use. */
body.mv2-nodivi .ow-page-title{
  max-width:1180px;margin-left:auto;margin-right:auto;
  padding:0 24px;box-sizing:border-box;
  font-size:clamp(1.75rem,3.5vw,2.5rem);letter-spacing:.02em;}
@media (max-width:600px){
body.mv2-nodivi .ow-page-title{padding:0 15px;}
}
/* The account area runs on the HEADER's measure (1440 outer / 1392 inner), not
   the cart's 1180, so the shared value left the title 106px inside the content it
   labels. Measured, not assumed: cart title and cart content share a left edge
   exactly, so 1180 stays correct there. */
body.mv2-nodivi.woocommerce-account .ow-page-title{max-width:1440px;}
/* MV2 NODIVI PAGETITLE END */

/* MV2 NODIVI ACCOUNT STRAYS START */
/* Two paragraphs sit in the my-account page's own content and were ALWAYS meant
   to be invisible — the dashboard renders its own "my Monavie." in the nav rail,
   and the login screen renders its own whitelist notice. Under Divi they were
   suppressed by:
       body.woocommerce-account .et-l--post .et_pb_text_1{display:none!important}
       body.mv2.woocommerce-account.logged-in .et_pb_text_0{display:none!important}
   Both selectors target Divi module wrappers that no longer exist, so the rules
   stopped matching and the raw paragraphs surfaced at the top left.

   Scoped to direct children of .ow-main on the account pages only: the account
   area itself lives inside .woocommerce, so nothing real is caught. */
body.mv2-nodivi.woocommerce-account .ow-main > p{display:none !important;}
/* MV2 NODIVI ACCOUNT STRAYS END */

/* MV2 NODIVI CART START */
/* WooCommerce ships `.cart_totals{width:48%;float:right}`. Divi's module rule —
   `.et_pb_section_0 .et_pb_module{width:100%!important}` — used to override it,
   which is why the totals block filled the page. With Divi gone the 48% won: the
   totals grid dropped from 1148px to 551px and its label column collapsed to
   113px, which is what made "Due today" collide with its own figure and stranded
   the reassurance panel out to the right.

   Restoring width and killing the float is the whole fix — the grid inside was
   never broken, it was simply being asked to fit in half the room. */
body.mv2-nodivi.woocommerce-cart .cart_totals{
  width:100% !important;float:none !important;max-width:none !important;}
body.mv2-nodivi.woocommerce-cart .cart-collaterals{width:100%;}
body.mv2-nodivi.woocommerce-cart .cart-collaterals::after{content:"";display:table;clear:both;}
/* MV2 NODIVI CART END */

/* MV2 NODIVI SIGNIN START */
/* The sign-in panel was butting straight into the header — measured gap 0px, with
   13px left underneath it. The Divi section around it supplied that breathing room
   and went with the builder.

   Same --mv-s7 token as the products band and the fruits section, so all three
   keep one vertical rhythm. Deliberately NOT touching the white card or the page
   background — those are staying as they are. */
body.mv2-nodivi.woocommerce-account:not(.logged-in) .ow-main{
  padding-top:var(--mv-s7,4.5rem);padding-bottom:var(--mv-s7,4.5rem);}
@media (max-width:600px){
body.mv2-nodivi.woocommerce-account:not(.logged-in) .ow-main{
  padding-top:var(--mv-s5,2rem);padding-bottom:var(--mv-s5,2rem);}
}
/* MV2 NODIVI SIGNIN END */

/* MV2 SUBSCRIPTION GREEN START */
/* Choosing Subscribe & save re-themes the whole product block from brand purple
   to the subscription green this system already uses — .mv-opt__save and the
   drawer's interval pill both run on --mv-green-900 today.

   Done by REDEFINING the purple tokens inside the selected scope rather than by
   restyling each element: .mv-opt's chosen state is already
   `border-color:var(--mv-purple); background:var(--mv-purple-50)`, so everything
   token-driven follows for free — and it reverts on its own when Buy once is
   picked, because :has(:checked) is state, not a class anyone has to toggle.

   --mv-green-900 (#2F6B1C) rather than --mv-green (#58B735): the same token
   paints borders AND button fills, and #58B735 behind white text is about 2.5:1,
   which fails AA. #2F6B1C clears it. */
body.mv2 .mv-pdp:has(.mv-opt--sub .mv-opt__radio:checked),
body.mv2 .mv-card:has(.mv-opt--sub .mv-opt__radio:checked),
body.mv2 .mv-drawer:has(.mv-opt--sub .mv-opt__radio:checked){
  --mv-purple:var(--mv-green-900,#2F6B1C);
  --mv-purple-deep:#24551A;
  --mv-purple-50:rgba(88,183,53,.16);
}
/* The drawer keys off its own markup, not the card's. There is no .mv-opt in
   there — a subscription line is marked by .mv-li__sub (the interval pill, which
   was already green). Any subscription in the drawer turns the accent green.

   .mv-drawer__count follows the token; .mv-drawer__go does NOT — its purple is
   hardcoded, so it needs saying explicitly. Verified by overriding the token live
   and watching which of the two moved. */
body.mv2 .mv-drawer:has(.mv-li__sub){
  --mv-purple:var(--mv-green-900,#2F6B1C);
  --mv-purple-deep:#24551A;
  --mv-purple-50:rgba(88,183,53,.16);
}
body.mv2 .mv-drawer:has(.mv-li__sub) .mv-drawer__go{background:var(--mv-green-900,#2F6B1C);}
/* Same reason as the drawer's Go: any button whose purple is hard-coded rather
   than read from --mv-purple will not follow the token swap on its own. */
/* The purple on this button comes from the base .mv-btn class, not from any
   .mv-add rule — checked, and the only .mv-add background rules in this file are
   these two. !important here is belt-and-braces, not a specificity fight. */
body.mv2 .mv-pdp:has(.mv-opt--sub .mv-opt__radio:checked) .mv-add{
  background:var(--mv-green-900,#2F6B1C) !important;
  border-color:var(--mv-green-900,#2F6B1C) !important;}
body.mv2 .mv-pdp:has(.mv-opt--sub .mv-opt__radio:checked) .mv-add:hover{
  background:#24551A !important;border-color:#24551A !important;}
/* SAME FIX FOR THE GRID CARDS (home + shop share this component). The card's
   BASE green comes from a --mv-purple token swap, which .mv-btn{background:
   var(--mv-purple)} follows automatically. But .mv-btn:hover hard-codes
   rgb(110,0,196), so it does NOT follow the swap - measured: on a shop card
   with Subscribe checked the only matching hover rule was that literal purple.
   Exactly the hazard called out above for the drawer's Go button. */
body.mv2 .mv-card:has(.mv-opt--sub .mv-opt__radio:checked) .mv-add:hover{
  background:#24551A !important;border-color:#24551A !important;}
/* The chosen option's tint is also a literal lavender. */
body.mv2 .mv-pdp .mv-opt--sub:has(.mv-opt__radio:checked){
  background:rgba(88,183,53,.16);border-color:var(--mv-green-900,#2F6B1C);}
body.mv2 .mv-drawer:has(.mv-li__sub) .mv-drawer__go:hover{background:#24551A;}
/* MV2 SUBSCRIPTION GREEN END */

/* MV2 INFO NOTICE BLUE START */
/* Information cards read blue, matching the address stat on the dashboard
   (#2B7FFF) — the one place this system already used blue to mean "here is
   something you should know" rather than "here is something to click".

   Two blues on purpose. #2B7FFF is the hue itself and carries the icon, where a
   3:1 graphic ratio applies. Link TEXT uses #1B63D6, because #2B7FFF on this
   tint measures about 3.4:1 and text needs 4.5:1 to clear AA. Same colour family,
   legible at body size. */
/* Selector mirrors the rule it overrides — body.mv2.woocommerce-account —
   because the notice is a SIBLING of the sign-in panel, not a child of it:
       .ow-main > .woocommerce > .mv-auth__notice
   An earlier attempt used `.mv-auth .mv-auth__notice`, which matched nothing at
   all. Same specificity as the original, later in the file, so it wins on order.
   Chip lightened to #E3EEFF: #2B7FFF on #D3E4FF measured 2.92:1, and non-text
   graphics need 3.0. */
body.mv2.woocommerce-account .mv-auth__notice{background:#EAF2FF;border:1px solid #A9CBFF;}
body.mv2.woocommerce-account .mv-auth__notice-icon{background:#E3EEFF;color:#2B7FFF;}
body.mv2 .mv-auth__notice-link{color:#1B63D6;}
body.mv2 .mv-auth__notice-link:hover{color:#12489E;}
/* MV2 INFO NOTICE BLUE END */

/* MV2 SIGNIN EYEBROW START */
/* "Welcome to Monavie" doubled, 13px -> 26px. Line-height drops from 1.7 to 1.15
   in the same move: 1.7 is right for 13px kicker text and turns into a gap you
   can park a car in at 26px. Selector matches the woocommerce-account pattern the
   rest of this panel uses, and sits later in the file, so it wins on order. */
body.mv2.woocommerce-account .mv-auth__eyebrow{
  font-size:26px;line-height:1.15;}
@media (max-width:600px){
body.mv2.woocommerce-account .mv-auth__eyebrow{font-size:21px;}
}
/* MV2 SIGNIN EYEBROW END */

/* MV2 SIGNIN TABCOPY START */
/* Both variants ship in the markup; the panel's own --login / --register class
   decides which one paints. No JS involved: the tab script already toggles that
   class, so the copy follows for free and still reads correctly if scripts fail.
   display:none also hides the inactive line from screen readers, so the heading
   announces once, not twice.

   This fixes an actual error, not just the repetition: the register tab was
   telling brand-new customers "Welcome Back" and inviting them to sign in to an
   account they had not made yet. */
body.mv2 .mv-auth--login .mv-auth__w--signup{display:none;}
body.mv2 .mv-auth--register .mv-auth__w--signin{display:none;}
/* MV2 SIGNIN TABCOPY END */

/* MV2 WYR START */
/* WHAT YOU WILL RECEIVE — dark, per Matt's mockup (replaces the monochrome v1).
   The dark band gives the block presence the light version never had, and it is
   the only dark section on the product page, so it reads as a deliberate stop
   rather than another card. Purple carries the selection, as everywhere else. */
body.mv2 .mv-wyr{background:#0B0910;background-image:radial-gradient(120% 80% at 50% 0%,#171122 0%,#0B0910 62%);
  padding:clamp(48px,6vw,78px) 24px;margin:0;color:#EDEAF3;}
body.mv2 .mv-wyr__in{max-width:900px;margin:0 auto;text-align:center;}
body.mv2 .mv-wyr__h{margin:0;font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#fff;
  font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.05;}
/* The rule with a lit centre — one flourish, not a set of them. */
body.mv2 .mv-wyr__rule{position:relative;height:1px;margin:18px auto 0;max-width:640px;
  background:linear-gradient(90deg,transparent,rgba(131,0,233,.75),transparent);}
body.mv2 .mv-wyr__rule::after{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;
  transform:translate(-50%,-50%);border-radius:50%;background:#C77DFF;
  box-shadow:0 0 10px 3px rgba(199,125,255,.55);}
body.mv2 .mv-wyr__lede{margin:22px auto 0;max-width:660px;font-size:17px;line-height:1.6;color:#BFB9CE;}
body.mv2 .mv-wyr__pick,
body.mv2 .mv-wyr__ppl{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;margin:26px 0 0;}
body.mv2 .mv-wyr__picklab{font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:15px;color:#8E88A0;}
/* The oz choices are CARDS with a vessel that grows with the pour — the row
   reads as a quantity before the numbers are read. Stepper keeps the plain pill. */
body.mv2 .mv-wyr__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;cursor:pointer;color:#8E88A0;
  background:rgba(255,255,255,.02);border:1px solid #2A2438;border-radius:14px;
  padding:16px 10px 13px;min-width:88px;
  transition:color .18s,border-color .18s,background .18s,box-shadow .18s;}
body.mv2 .mv-wyr__vessel{display:block;color:inherit;}
body.mv2 .mv-wyr__btnlab{font:600 15px/1 inherit;color:#CFC9DC;transition:color .18s;}
body.mv2 .mv-wyr__btn:hover{border-color:#4A3D66;background:rgba(255,255,255,.05);color:#B49BE0;}
/* Selected: the icon and the ring light up together, and the glow sits OUTSIDE
   the border so the card looks lit rather than merely filled. */
body.mv2 .mv-wyr__btn.is-on{color:#C77DFF;border-color:#A855F7;
  background:rgba(131,0,233,.10);
  box-shadow:0 0 0 1px rgba(168,85,247,.55),0 0 22px 2px rgba(168,85,247,.42),
    inset 0 0 18px rgba(168,85,247,.14);}
body.mv2 .mv-wyr__btn.is-on .mv-wyr__btnlab{color:#F0E4FF;}
/* An UNSELECTED card must carry no glow. Measured: after switching away, the 4 oz
   card kept a box-shadow with is-on removed — the class toggles correctly, so
   something else is painting it and I have not identified what. This states the
   intent outright rather than leaving two cards lit. */
body.mv2 .mv-wyr__btn:not(.is-on){box-shadow:none;}
body.mv2 .mv-wyr__step{font:600 15px/1 inherit;cursor:pointer;color:#EDEAF3;
  background:rgba(255,255,255,.03);border:1px solid #322B44;border-radius:8px;
  padding:12px 18px;min-height:46px;min-width:46px;transition:background .16s,border-color .16s,color .16s;}
body.mv2 .mv-wyr__step:hover{border-color:#6E5A8E;background:rgba(255,255,255,.07);}

body.mv2 .mv-wyr__people{width:74px;text-align:center;font:600 15px/1 inherit;color:#EDEAF3;
  background:rgba(255,255,255,.03);border:1px solid #322B44;border-radius:8px;
  padding:12px 6px;min-height:46px;-moz-appearance:textfield;}
body.mv2 .mv-wyr__people::-webkit-outer-spin-button,
body.mv2 .mv-wyr__people::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
body.mv2 .mv-wyr__rows{list-style:none;margin:34px 0 0;padding:0;text-align:left;
  background:rgba(255,255,255,.025);border:1px solid #241E33;border-radius:14px;overflow:hidden;}
body.mv2 .mv-wyr__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;gap:2px 16px;padding:18px 22px;
  border-bottom:1px solid #241E33;border-left:3px solid transparent;
  color:#CFC9DC;transition:background .16s,color .16s,border-color .16s;}
body.mv2 .mv-wyr__rows > .mv-wyr__row:last-child{border-bottom:0;}
body.mv2 .mv-wyr__ic{grid-row:1/span 2;display:flex;align-items:center;justify-content:center;
  width:42px;height:42px;border-radius:50%;color:#A97BE0;
  border:1px solid rgba(169,123,224,.45);background:rgba(131,0,233,.10);}
body.mv2 .mv-wyr__amt{grid-column:2;font-weight:700;font-size:17px;color:#F3F1F8;}
body.mv2 .mv-wyr__note{grid-column:2;font-size:14px;color:#8E88A0;}
body.mv2 .mv-wyr__days{grid-column:3;grid-row:1/span 2;justify-self:end;
  font-variant-numeric:tabular-nums;font-size:19px;font-weight:700;white-space:nowrap;color:#F3F1F8;}
/* The chosen row is the only thing that lifts — the answer should be unmissable. */
body.mv2 .mv-wyr__row.is-on{background:linear-gradient(90deg,rgba(131,0,233,.22),rgba(131,0,233,.07));
  border-left-color:var(--mv-purple,#8300E9);color:#fff;}
body.mv2 .mv-wyr__row.is-on .mv-wyr__ic{color:#D6B4FF;border-color:rgba(214,180,255,.7);background:rgba(131,0,233,.28);}
body.mv2 .mv-wyr__row.is-on .mv-wyr__note{color:#C77DFF;}
body.mv2 .mv-wyr__row.is-on .mv-wyr__days{color:#C77DFF;font-size:clamp(1.4rem,2.6vw,1.85rem);font-weight:800;}
/* Two caveats side by side — a split footer reads as two facts, a stacked pair
   reads as small print. */
body.mv2 .mv-wyr__foot{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:22px 0 0;text-align:left;
  background:rgba(255,255,255,.02);border:1px solid #241E33;border-radius:14px;}
body.mv2 .mv-wyr__fnote{display:flex;align-items:flex-start;gap:12px;margin:0;
  padding:18px 22px;font-size:14px;line-height:1.55;color:#8E88A0;}
body.mv2 .mv-wyr__fnote + .mv-wyr__fnote{border-left:1px solid #241E33;}
body.mv2 .mv-wyr__fic{flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;color:#A97BE0;border:1px solid rgba(169,123,224,.40);}
@media (max-width:760px){
/* THE CASCADE: at 390px the three-column row could not fit "4 oz a day" beside
   "about 9 months", so the label broke to one word per line and the note to one
   syllable per line. The days figure has to leave the row's first line. */
body.mv2 .mv-wyr__row{grid-template-columns:auto minmax(0,1fr);
  padding:15px 16px;gap:2px 12px;}
body.mv2 .mv-wyr__ic{grid-row:1/span 3;width:36px;height:36px;}
body.mv2 .mv-wyr__amt,
body.mv2 .mv-wyr__note,
body.mv2 .mv-wyr__days{grid-column:2;justify-self:start;white-space:normal;}
body.mv2 .mv-wyr__days{grid-row:auto;margin-top:4px;font-size:19px;}
body.mv2 .mv-wyr__row.is-on .mv-wyr__days{font-size:1.45rem;}

/* The stepper was splitting mid-control — [-][1] on one line, [+] on the next.
   Keeping the three parts together matters more than keeping the words with them. */
body.mv2 .mv-wyr__pick,
body.mv2 .mv-wyr__ppl{gap:8px;}
body.mv2 .mv-wyr__picklab{flex:0 0 100%;text-align:center;}
body.mv2 .mv-wyr__btn,
body.mv2 .mv-wyr__step{padding:11px 15px;min-height:44px;}

body.mv2 .mv-wyr__foot{grid-template-columns:1fr;}
body.mv2 .mv-wyr__fnote + .mv-wyr__fnote{border-left:0;border-top:1px solid #241E33;}
}
/* MV2 WYR END */

/* MV2 ACCOUNT PHONE GUTTER START */
/* The account area ran EDGE TO EDGE on phones — every top-level block at left:0
   with no padding, so the orders table touched both sides of the screen. It only
   looked survivable on the dashboard because the cards carry 12px of their own,
   which was a card detail standing in for a page gutter.

   10px is not invented: it is what .mv-head__in already declares, so the cards
   now start exactly where the hamburger does. (The CART currently sits at 6px
   because .mv-nav overflows its content box by ~3px — that is a header bug, left
   alone here so this change does one thing.) */
@media (max-width:600px){
/* ONE element only. .woocommerce-MyAccount-content is nested INSIDE
   .woocommerce, so padding both stacked to 20px and pushed the cards past the
   hamburger they were meant to line up with. */
body.mv2-nodivi.woocommerce-account .woocommerce{
  padding-left:10px;padding-right:10px;box-sizing:border-box;}

/* Inside .mv-dash__recent the heading was inset 22px while the list beneath it
   sat at 12 — same card, two left edges, 10px apart. Matched to the list. */
body.mv2 .mv-dash__card-head{padding-left:12px;padding-right:12px;}
}
/* Tablet needs the same treatment and a DIFFERENT number: .mv-head__in pads
   10px on phones but 16px here, and both the burger and the cart honour it — the
   header is symmetric at this width. The account area had no gutter at all, so
   the stat cards and the name card ran to both edges exactly as they did on
   phones. Matching the header again rather than picking a number. */
@media (min-width:601px) and (max-width:1024px){
body.mv2-nodivi.woocommerce-account .woocommerce{
  padding-left:16px;padding-right:16px;box-sizing:border-box;}
}
/* MV2 ACCOUNT PHONE GUTTER END */

/* MV2 HEADER PHONE SYMMETRY START */
/* The phone header overflowed its own padding by 3px, so the cart sat 6px from
   the edge while the burger sat at 10 — the 4px asymmetry that made the account
   cards look wrong even after they were aligned to the burger.

   The row is 353px wide and wanted 356:
       burger 44 + logo 150 + nav 148  = 342
       gap 6px x 2                     = +12
       burger margin-right 2px         =  +2
                                         356
   justify-content:space-between has no free space to hand out once a row
   overflows, so the last item simply runs past the padding rather than stopping
   at it. Nothing was misaligned — the row did not fit.

   Freeing 6px (gap 6->4, burger margin 2->0) leaves 3px spare, so space-between
   parks the nav on the content edge where it belongs. The logo's 150px cap and
   the 44px tap targets are deliberately untouched. */
@media (max-width:600px){
body.mv2 .mv-head__in{gap:4px;}
}
/* MV2 HEADER PHONE SYMMETRY END */

/* MV2 SHOP ANCHOR START */
/* SHOP NOW must land on the INTRO, not the grid.

   The #shop id sits on .mv-grid, but the grid is preceded by the "Choose your
   quantity" intro, which is written into the page content rather than generated —
   so the id cannot simply be moved in code. Scrolling to the grid put that heading
   36px ABOVE the viewport: the destination scrolled past its own title.

   scroll-margin-top belongs to the TARGET, so the fix lives here. Anchoring the
   intro is what we actually want:
       hero bottom  -> 81px  (flush under the header, none visible)
       intro top    -> 81px  (section starts directly below the header)
       heading      -> 153px (clear, with its full 72px of padding above)

   NOT a hardcoded 270. That number is header + intro height, and it would break
   the first time the heading wraps or the lede changes. Expressed as the header
   plus the intro's own box, it follows the content. */
body.mv2 .ow-main > .mv-intro:has(+ #shop){scroll-margin-top:81px;}
body.mv2 #shop{
  scroll-margin-top:calc(81px + var(--mv-shop-offset,189px));}
/* MV2 SHOP ANCHOR END */

/* MV2 FOOTER WORDMARK START */
/* The wrap centres with text-align:center, which only moves INLINE content. The
   old <img> was inline so it worked; the inlined <svg> computes to display:block
   and sat hard against the left edge of the wrap. Auto margins centre a block. */
body.mv2 .mv-ftr__logo svg{display:block;margin-left:auto;margin-right:auto;
  width:min(520px,70%);height:auto;}
/* Phones keep the smaller mark — 520px would swallow a 390px screen. */
@media (max-width:860px){
body.mv2 .mv-ftr__logo svg{width:min(260px,70%);}
}
/* MV2 FOOTER WORDMARK END */

/* MV2 NODIVI THANKYOU START */
/* The order-received endpoint renders on the CHECKOUT page, so it inherits that
   page's content — including two paragraphs that Divi kept hidden inside
   .et_pb_text_* wrappers:
       "If you're using a shipping address different from your billing..."
       "You must LOGIN or REGISTER before checking out."
   The second one appearing on a COMPLETED, PAID order is the alarming half — it
   tells a customer who has just been charged that they are not signed in.

   Scoped to order-received ONLY. The checkout page itself is deliberately left
   alone: that gate paragraph is the logged-out gate, and this clone sits behind
   HTTP Basic Auth so the anonymous view could not be verified from here. */
body.mv2-nodivi.woocommerce-order-received .ow-main > p{display:none !important;}

/* And the auto-heading reads "Checkout" here, because the endpoint borrows the
   checkout page's title. A thank-you page announcing itself as Checkout is worse
   than no heading, so it is suppressed until the card supplies a real one. */
body.mv2-nodivi.woocommerce-order-received .ow-page-title{display:none !important;}
/* MV2 NODIVI THANKYOU END */

/* MV2 DRAWER VEIL STACKING START */
/* Select2 hardcodes z-index:9999 on .select2-container — the same as the drawer
   and ONE ABOVE the veil at 9998. So the Country and State dropdowns punched
   through the dim while every plain input stayed correctly beneath it. Verified
   with elementFromPoint: the selects returned themselves, the inputs returned
   the veil.

   Raising the veil rather than lowering Select2: its 9999 is baked into a
   third-party stylesheet we do not own, and anything else on the page that
   reaches for a big z-index would break through again. The veil moves to
   100000 and the drawer above it, so the whole page is covered whatever a
   plugin decides to do below. */
body.mv2 .mv-drawer__veil{z-index:100000;}
body.mv2 .mv-drawer{z-index:100001;}
/* Select2's own dropdown POPUP renders at the body root and must stay reachable
   when the drawer is closed — it is only ever a problem while the veil is up. */
body.mv-drawer-lock .select2-container{z-index:9999;}
/* MV2 DRAWER VEIL STACKING END */

/* MV2 CHECKOUT CONSENT ROW START */
/* "(optional)" was marooned at the right of the renewal-date consent row while
   the label wrapped to three lines beneath it.

   Cause: label.checkbox is display:flex, so EVERY child becomes a flex item —
   including the bare text node, which becomes an anonymous one. The text and the
   .optional span were therefore siblings in a row and could never share a line,
   no matter what display the span itself carried.

   Back to normal flow with the box floated: the text and (optional) are now in
   one inline run and wrap together, and the checkbox still sits against the
   first line. */
/* The element carries TWO classes. The flex comes from a rule in THIS file using
   p.wcss-consent-checkbox (spec 403); targeting .wcss-consent-field gave only 302
   and lost — the float applied, the display did not, which is why the row still
   looked wrong after the first attempt. Same selector, later in the file. */
/* Matched to .woocommerce-terms-and-conditions-wrapper directly above: same
   15px/19.5px type, same inline checkbox with an 8px gap. The TINT, radius and
   padding stay — that is what still marks this one as the optional extra.

   Two corrections to my own first attempt: the float was unnecessary (the terms
   row gets identical wrapping from a plain inline checkbox), and the margin was
   being overridden to 1px 0 0 by something else, leaving NO gap between the box
   and the text — hence !important on that one declaration only. */
/* 13px, not 15. The agreement's LABEL is 15px but its visible text sits inside
   span.woocommerce-terms-and-conditions-checkbox-text at 13px — so matching the
   label matched the wrong element and left this row visibly larger. Colour too:
   #3F3B45, not the full #231F20 ink. */
/* Values lifted from the element that actually renders the agreement's sentence
   — span.woocommerce-terms-and-conditions-checkbox-text — not from its label.
   Twice now I matched the label and got the wrong numbers: the label is 15px
   #3F3B45 19.5, the visible span is 13px #5A5560 18.85. Read the painted element. */
body.mv2.woocommerce-checkout p.wcss-consent-checkbox label.checkbox{display:block;font-size:13px;line-height:18.85px;color:#5A5560;}
body.mv2.woocommerce-checkout p.wcss-consent-checkbox label.checkbox input[type=checkbox]{
  float:none;margin:-2px 8px 0 0 !important;vertical-align:middle;}
body.mv2.woocommerce-checkout p.wcss-consent-checkbox label.checkbox .optional{
  display:inline;margin-left:.35em;color:var(--mv-ink-2,#55555C);font-weight:400;}
/* MV2 CHECKOUT CONSENT ROW END */

/* MV2 CHECKOUT PAYMENT CARD START */
/* #payment was showing WooCommerce's own default — rgba(129,110,153,.14) grey,
   5px radius, and ZERO padding, so the privacy text, the terms row and the Place
   Order button all touched its edges. It read as a stray grey band rather than a
   panel, because that is exactly what it was: Woo's unstyled default with Divi's
   cover removed.

   The account page already solved this — .woocommerce-MyAccount-content #payment
   gets white/1px/18px-radius/22px-padding. Checkout only ever got
   padding-left:0;padding-right:0, which stripped the sides and added nothing.

   Matched to .mv-coship sitting directly above it (white, 1px line, 12px radius,
   18px padding) so the two panels read as siblings instead of one card and one
   accident. */
body.mv2.woocommerce-checkout #payment{
  background:#fff !important;
  border:1px solid var(--mv-line,#E6E1EA) !important;
  border-radius:12px !important;
  padding:18px !important;
}
/* The tinted inner cards then need no side inset of their own. */
body.mv2.woocommerce-checkout #payment > .form-row.place-order{margin-bottom:0 !important;}
/* MV2 CHECKOUT PAYMENT CARD END */

/* MV2 NODIVI STRAY SUMMARY START */
/* WooCommerce's .summary.entry-summary is an EMPTY SHELL on our product pages —
   the PDP renders through [mv2_product], so nothing hooks into it. All it holds
   is one zero-height <p class="first-payment-date">.

   But it is float:right, and it is the ONLY float on the page. That single empty
   float caused BOTH product-page footer bugs:
     1. the footer narrowed to 1470px, because display:flex makes it a block
        formatting context and a BFC beside an uncleared float is squeezed;
     2. after clear:both fixed that, the footer dutifully dropped BELOW the
        float's 17px overhang — the 51px white gap under the dark section.

   Removing the float removes the cause of both. clear:both stays as a belt on
   the footer in case any other float ever appears. */
body.mv2-nodivi.single-product .summary.entry-summary{display:none;}
/* MV2 NODIVI STRAY SUMMARY END */

/* MV2 CART BADGE TONE START */
/* Purple for an ordinary cart, green the moment a subscription is in it.
   Subscription wins a mixed cart — a recurring charge is the more consequential
   fact, so it is the one the badge should be reporting.

   The class is applied by mv2-cartbadge.php through Woo's own cart fragments, so
   it survives AJAX add-to-cart. CSS alone could not do this: the badge is in the
   header, the cart contents are not, and the drawer is built by JavaScript — so
   there is nothing in the document for :has() to look at. */
body.mv2 .mv-cartbtn__n.is-sub{
  background:var(--mv-green-900,#2F6B1C) !important;
  border-color:var(--mv-green-900,#2F6B1C) !important;}
/* Empty carts should not show a bare bubble — the fragment renders the span with
   no text at zero, so hide it rather than paint an empty circle. */
body.mv2 .mv-cartbtn__n:empty{display:none;}
/* MV2 CART BADGE TONE END */

/* MV2 BREADCRUMBS START */
/* A pill, per Matt's reference: white card, an icon per rung, chevrons between,
   first rung in the brand colour. Applied to our own .mv-crumb AND to
   WooCommerce's .woocommerce-breadcrumb on shop, which was raw default markup.
   Woo prints bare text separators rather than list items, so it gets the shell
   and the link colour but not the icons — matching without rewriting its HTML. */
body.mv2 .mv-crumb,
body.mv2 nav.woocommerce-breadcrumb{
  max-width:1440px;margin:18px auto 0;padding:0 24px;box-sizing:border-box;}
body.mv2 .mv-crumb__list,
body.mv2 nav.woocommerce-breadcrumb{
  display:flex;flex-wrap:wrap;align-items:center;gap:4px;
  list-style:none;margin:0;padding:14px 22px;
  background:#fff;border:1px solid var(--mv-line,#E6E1EA);border-radius:16px;
  box-shadow:0 2px 10px rgba(35,31,32,.05);
  font-size:15px;line-height:1.4;color:#231F20;}
body.mv2 nav.woocommerce-breadcrumb{max-width:none;margin:0 auto;}
body.mv2 .mv-crumb__item{display:flex;align-items:center;}
/* Chevron drawn rather than typed, so it scales with the text. */
body.mv2 .mv-crumb__item + .mv-crumb__item::before{
  content:"";width:6px;height:6px;flex:0 0 auto;margin:0 12px 0 8px;
  border-right:2px solid #C4C0CC;border-bottom:2px solid #C4C0CC;
  transform:rotate(-45deg);}
body.mv2 .mv-crumb__link,
body.mv2 .mv-crumb__here{display:inline-flex;align-items:center;gap:9px;
  text-decoration:none;font-weight:600;color:#231F20;}
body.mv2 .mv-crumb__ico{flex:0 0 auto;display:block;color:#55555C;}
/* First rung carries the brand colour — icon and label together. */
body.mv2 .mv-crumb__item.is-first .mv-crumb__link,
body.mv2 .mv-crumb__item.is-first .mv-crumb__ico{color:var(--mv-purple,#8300E9);}
body.mv2 .mv-crumb__link:hover{color:var(--mv-purple-deep,#672B91);}
body.mv2 .mv-crumb__link:hover .mv-crumb__ico{color:var(--mv-purple-deep,#672B91);}
body.mv2 .mv-crumb__here{color:#231F20;}
body.mv2 nav.woocommerce-breadcrumb a{color:var(--mv-purple,#8300E9);text-decoration:none;font-weight:600;}
body.mv2 nav.woocommerce-breadcrumb a:hover{color:var(--mv-purple-deep,#672B91);}
@media (max-width:600px){
/* ⚠ Hidden, NOT removed — the bottom sheet navigates here, but crawlers and
   screen readers keep the structure. */
body.mv2 .mv-crumb,
body.mv2 nav.woocommerce-breadcrumb{display:none;}
}

/* ⚠ THE ACCOUNT PAGE IS A GRID, and the breadcrumb became a grid ITEM — it
   landed in the narrow nav column. MEASURED: 203x121 at tablet, 280x100 at
   desktop, wrapping into a stub rather than reading as a trail. It was never
   hidden; it was crushed. Spanning every column fixes it. */
body.mv2.woocommerce-account .woocommerce > .mv-crumb{grid-column:1 / -1;width:100%;}

/* VISIBILITY, per Matt: the ACCOUNT area shows the trail on TABLET ONLY — the
   desktop has the side rail and the phone has the bottom sheet, so both already
   navigate. Everywhere else it shows from tablet up. */
@media (min-width:981px){
body.mv2.woocommerce-account .mv-crumb{display:none;}
}
/* Give it room to breathe once it spans the full width. */
body.mv2.woocommerce-account .mv-crumb{margin-bottom:18px;}
/* MV2 BREADCRUMBS END */

/* MV2 SHOP BANNER START */
/* Matt's reference: nested arcs sweeping out of the bottom-left, dark to light.
   Rebuilt in the MonaVie purples.

   ⚠ THE ARCS ARE RADIAL GRADIENTS, NOT AN IMAGE. Four hard-stopped circles share
     one origin off the bottom-left corner, each larger than the last, so the
     edges read as clean concentric sweeps. Nothing to download, nothing to keep
     in step with the palette, and it scales to any width with no srcset. */
body.mv2 .mv-shopban{position:relative;overflow:hidden;isolation:isolate;
  /* Aligned to the HEADER'S VISUAL EDGE, not its box: the header insets its
     content 24px on desktop, 16px on tablet and 10px on phone, so the banner
     uses the same insets. A fixed max-width alone overhangs the logo by 24px
     a side - measured 231..1671 against logo 255 / cart 1647 at 1920. */
  width:calc(100% - 48px);max-width:1392px;margin:18px auto 0;border-radius:20px;
  background:linear-gradient(118deg,#3A0A6B 0%,#5A12B0 54%,#7A1FDE 100%);
  padding:clamp(18px,2.4vw,28px) clamp(20px,3vw,44px);}
/* STOPS ARE COINCIDENT ON PURPOSE. They were 44% -> 44.4%, and 0.4% of a
   circle roughly 1000px in radius is ~4px of feathering - which read as a BLUR
   rather than an arc. No filter was ever involved. Matching the two stops gives
   a hard edge.
   The dark sweep went #2E0B4A -> #1B0533 and the mid lilac #C9A6EC -> #B98FE4:
   Matt wanted the deeper palette from the mockup, and the flat brand purple
   underneath became a gradient so the right side is rich rather than uniform. */
body.mv2 .mv-shopban__arcs{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at -14% 128%, #F1E7FB 0 44%, transparent 44%),
    radial-gradient(circle at -14% 128%, #B98FE4 0 48%, transparent 48%),
    radial-gradient(circle at -14% 128%, #1B0533 0 60%, transparent 60%);}

/* The bottle sits on the pale left sweep, as in the mockup.
   ABSOLUTELY POSITIONED ON PURPOSE: in flow it would set the banner's height,
   which is exactly what this pass was asked to reduce. Anchored to the bottom
   so the composition still reads if the copy ever grows. */
body.mv2 .mv-shopban__art{position:absolute;z-index:1;
  left:clamp(6px,2.2vw,38px);top:0;bottom:0;
  display:flex;align-items:flex-end;pointer-events:none;}
body.mv2 .mv-shopban__art img{display:block;height:100%;width:auto;
  max-width:clamp(140px,25vw,340px);object-fit:contain;object-position:left bottom;}

body.mv2 .mv-shopban__in{position:relative;z-index:2;max-width:620px;margin-left:auto;}

/* The copy sits RIGHT, where the reference leaves the field clear - the arcs and
   now the bottle own the left third, and text over them would fight the curve. */
body.mv2 .mv-shopban__eyebrow{margin:0 0 6px;color:#E4D3F2;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:13px;}
body.mv2 .mv-shopban__h{margin:0;color:#fff;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.02;
  font-size:clamp(1.6rem,3vw,2.25rem);}
body.mv2 .mv-shopban__sub{margin:9px 0 0;color:#EADCF7;font-size:15.5px;line-height:1.45;}
/* The saving is the reason to subscribe, so it is the one phrase lifted out. */
body.mv2 .mv-shopban__save{color:#C9A6EC;font-weight:600;}
body.mv2 .mv-shopban__pts{list-style:none;margin:13px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:8px 10px;}
body.mv2 .mv-shopban__pts li{display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.14);color:#fff;border-radius:999px;
  padding:6px 14px;font-size:13.5px;font-weight:600;}
/* A drawn tick rather than a character - no font dependency. */
body.mv2 .mv-shopban__pts li::before{content:"";width:7px;height:11px;flex:0 0 auto;
  border-right:2px solid #fff;border-bottom:2px solid #fff;
  transform:rotate(42deg);margin-top:-3px;}

/* Desktop AND tablet keep the bottle (Matt's call); only the phone drops it.
   That is why the card stops going full-width at 767 rather than 900 - between
   768 and 900 it has to leave the left third free for the art. */
@media (max-width:900px){
/* Tablet: from the hamburger's left edge to the cart's right edge - a 16px inset. */
body.mv2 .mv-shopban{width:calc(100% - 32px);max-width:none;}
body.mv2 .mv-shopban__in{max-width:520px;}
body.mv2 .mv-shopban__arcs{background:
    radial-gradient(circle at -30% 132%, #F1E7FB 0 30%, transparent 30%),
    radial-gradient(circle at -30% 132%, #B98FE4 0 34%, transparent 34%),
    radial-gradient(circle at -30% 132%, #1B0533 0 44%, transparent 44%);}
}
@media (max-width:767px){
/* width:auto so the explicit 10px margins govern - the base calc() would
   otherwise fight them and pull the right edge in. */
body.mv2 .mv-shopban{width:auto;margin:12px 10px 0;border-radius:16px;}
body.mv2 .mv-shopban__art{display:none;}
body.mv2 .mv-shopban__in{max-width:none;margin-left:0;}
body.mv2 .mv-shopban__sub{font-size:15px;}
}

/* ---- Glass panel over the arcs ----
   Matching the language already used by the account sheet (white at low opacity
   plus a backdrop blur), tuned for sitting on purple rather than on a page.
   Darkened from rgba(46,11,74,.42) for the deeper mockup palette. */
body.mv2 .mv-shopban__in{
  background:rgba(24,6,44,.52);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  backdrop-filter:blur(16px) saturate(1.4);
  border:2px solid rgba(255,255,255,.16);
  border-radius:18px;
  padding:clamp(16px,2.1vw,22px) clamp(18px,2.4vw,26px);
  box-shadow:0 8px 32px rgba(19,0,38,.28);}
/* Safari and Firefox without backdrop-filter get a flat panel rather than a
   transparent one - otherwise the copy would sit on bare purple with a border
   around nothing. */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
body.mv2 .mv-shopban__in{background:rgba(40,6,80,.72);}
}
/* The pills sit ON the glass, so they need a touch more presence than they did
   against solid purple. */
body.mv2 .mv-shopban__pts li{background:rgba(255,255,255,.20);
  border:1px solid rgba(255,255,255,.20);}

/* ---- The duplicate copy ----
   ⚠ HIDDEN, NOT UNHOOKED. .page-description holds BOTH this intro AND the
   .mv-grid product cards. Unhooking its renderer is exactly what emptied the
   shop page earlier. Scoped to .woocommerce-shop because .mv-intro is a reusable
   block used elsewhere. */
body.mv2.woocommerce-shop .page-description > .mv-intro{display:none;}
/* MV2 SHOP BANNER END */

/* MV2 ACCOUNT SPACING START */
/* MEASURED: the account .woocommerce had padding-top:0 at EVERY width, so the
   dashboard card sat flush against the header — gap of 0px. Shop leaves 18px to
   its breadcrumb and 72px of rhythm below that, and the account area should
   read the same. */
body.mv2.woocommerce-account .woocommerce{padding-top:var(--mv-s7,4.5rem);}
/* With a trail present the 72px belongs ABOVE it, not between it and the card. */
body.mv2.woocommerce-account .woocommerce > .mv-crumb{margin-top:0;}

@media (max-width:1024px){
/* Phone and tablet had NO horizontal padding on the account grid itself — the
   10px and 16px measured were on an inner wrapper, so cards still ran to the
   edge. These match the header gutters at each width. */
body.mv2.woocommerce-account .woocommerce{padding-top:32px;padding-left:16px;padding-right:16px;}
}
@media (max-width:600px){
body.mv2.woocommerce-account .woocommerce{padding-top:24px;padding-left:10px;padding-right:10px;}
}
/* MV2 ACCOUNT SPACING END */

/* MV2 PDP TITLE - card composition at PDP scale (2026-07-30) */
body.mv2 .mv-pdp__title{text-transform:none;letter-spacing:normal}
body.mv2 .mv-pdp__title .mv-card__name{display:block;font-size:.5em;letter-spacing:.08em;margin:0 0 .06em}
body.mv2 .mv-pdp__title .mv-card__line{gap:.4em}
body.mv2 .mv-pdp__title .mv-card__qty{font-size:1em;letter-spacing:.01em}
body.mv2 .mv-pdp__title .mv-card__count{font-size:.5em;font-family:var(--mv-font-body);font-weight:400}
/* MV2 PDP TITLE END */

/* MV2 PDP CALC ICON - links the duration to the servings calculator (2026-07-30) */
body.mv2 .mv-pdp__calc{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:6px;vertical-align:-0.125em;color:#1B63D6;text-decoration:none;border-radius:5px;transition:color .15s ease,background .15s ease}
body.mv2 .mv-pdp__calc:hover{color:#12489E;background:#EAF2FF}
body.mv2 .mv-pdp__calc:focus-visible{outline:2px solid #1B63D6;outline-offset:2px}
body.mv2 .mv-pdp__calc svg{width:16px;height:16px;display:block}
/* MV2 PDP CALC ICON END */

/* MV2 PDP MOBILE CARD START */
/* Phone + tablet: the product page's top section becomes the same white card the
   shop and front-page grids use - title, image, the two buy options, qty + cart,
   best-before - with the unit line, description, upsell and trust list BELOW it.
   Matt's mockup.

   HOW, WITHOUT TOUCHING THE MARKUP: the title lives INSIDE .mv-pdp__buy, which is
   a SIBLING of .mv-gal, so order alone could never lift it above the image.
   display:contents on .mv-pdp__buy removes its BOX (not the element) so all of
   its children become direct flex items of .mv-pdp__top and can be ordered
   freely. WATCH THE SELECTORS: display:contents changes BOX GENERATION, NOT THE
   DOM TREE. A child-combinator selector rooted at the TOP wrapper will never
   match the title, because the title is still a DOM child of the BUY panel.
   Root everything the buy panel owns at the buy panel; only .mv-gal is a real
   child of the top wrapper.
   The element stays in the DOM, so mv2-cart.js's
   closest('.mv-card, .mv-pdp__buy') still resolves and add-to-cart keeps working.

   The card is drawn across FIVE contiguous siblings rather than one wrapper:
   shared white background and side borders, with the rounding and the top/bottom
   border on the first and last of them. They stack with no gap, so it reads as a
   single card. That is what avoids a markup change that would have broken the
   desktop two-column grid. */
@media (max-width:980px){
body.mv2 .mv-pdp__top{display:flex !important;flex-direction:column;gap:0;}
body.mv2 .mv-pdp__buy{display:contents;}

body.mv2 .mv-pdp__buy > .mv-pdp__title{order:1;}
body.mv2 .mv-pdp__top > .mv-gal{order:2;}
body.mv2 .mv-pdp__buy > .mv-opts{order:3;}
body.mv2 .mv-pdp__buy > .mv-cart{order:4;}
body.mv2 .mv-pdp__buy > .mv-pdp__expiry{order:5;}
body.mv2 .mv-pdp__buy > .mv-pdp__unit{order:6;}
body.mv2 .mv-pdp__buy > .mv-pdp__desc{order:7;}
body.mv2 .mv-pdp__buy > .mv-pdp__more{order:8;}
body.mv2 .mv-pdp__buy > .mv-pdp__trust{order:9;}

body.mv2 .mv-pdp__buy > .mv-pdp__title,
body.mv2 .mv-pdp__top > .mv-gal,
body.mv2 .mv-pdp__buy > .mv-opts,
body.mv2 .mv-pdp__buy > .mv-cart,
body.mv2 .mv-pdp__buy > .mv-pdp__expiry{
  background:#fff;
  border-left:1px solid var(--mv-line,#E6E1EA);
  border-right:1px solid var(--mv-line,#E6E1EA);
  padding-left:16px;padding-right:16px;
  margin-left:0;margin-right:0;}

body.mv2 .mv-pdp__buy > .mv-pdp__title{
  border-top:1px solid var(--mv-line,#E6E1EA);
  border-radius:16px 16px 0 0;
  padding-top:18px;margin-top:0;margin-bottom:0;}
body.mv2 .mv-pdp__top > .mv-gal{padding-top:14px;padding-bottom:2px;margin:0;}
body.mv2 .mv-pdp__buy > .mv-opts{padding-top:4px;padding-bottom:0;margin:0;}
body.mv2 .mv-pdp__buy > .mv-cart{padding-top:12px;padding-bottom:12px;margin:0;}
body.mv2 .mv-pdp__buy > .mv-pdp__expiry{
  border-bottom:1px solid var(--mv-line,#E6E1EA);
  border-radius:0 0 16px 16px;
  padding-top:10px;padding-bottom:18px;margin:0;
  border-top:1px solid var(--mv-line,#E6E1EA);}

/* The card segments MUST all be the same width or the outline goes ragged.
   .mv-pdp__top carries align-items:start from the desktop grid, so as a flex
   column its children sized to CONTENT - measured 173 / 173 / 341 / 288 / 140
   at 390. stretch is what makes the five read as one card. */
body.mv2 .mv-pdp__top{align-items:stretch;}
/* FULL SPAN 2026-07-30 (Matt): the grey stage now runs the full card width, to
   match the price and subscription boxes. The earlier 360px cap is GONE.
   ⚠ THE STAGE IS aspect-ratio:1/1, so its HEIGHT now tracks the card width -
   at tablet that is a large square. If it reads too tall, cap the HEIGHT here
   rather than the width, or the grey stops spanning. */
body.mv2 .mv-gal{align-items:stretch;}
body.mv2 .mv-gal__stage{width:100%;max-width:none;margin-left:0;margin-right:0;}
/* Thumbnails HIDDEN at Matt's request (2026-07-30) so he can judge the stage
   with arrows + swipe alone. NOT deleted - the markup still renders them and
   they remain the swap mechanism the arrows and swipe drive, so this is one
   line to undo. Do NOT remove them from the PHP. */
body.mv2 .mv-gal__thumbs{display:none;}

/* below the card, back on the page background */
body.mv2 .mv-pdp__buy > .mv-pdp__unit{margin:18px 0 0;}
body.mv2 .mv-pdp__buy > .mv-pdp__desc{margin:10px 0 0;}
body.mv2 .mv-pdp__buy > .mv-pdp__more{margin:16px 0 0;}
body.mv2 .mv-pdp__buy > .mv-pdp__trust{margin:16px 0 0;}
}
/* MV2 PDP MOBILE CARD END */

/* MV2 GALLERY NAV ARROWS START */
/* Circular translucent arrows over the stage so phone and tablet customers can
   SEE there is another image - a swipe alone is undiscoverable. PHP only emits
   them when a SKU has more than one shot, so there is never a dead control.
   Hidden from 981 up: desktop has the thumbnail row and the zoom cursor. */
body.mv2 .mv-gal__stage{position:relative;}
body.mv2 .mv-gal__nav{display:none;}
@media (max-width:980px){
body.mv2 .mv-gal__nav{
  display:flex;align-items:center;justify-content:center;
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:40px;height:40px;padding:0;border-radius:50%;
  background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border:1px solid rgba(35,31,32,.10);
  color:var(--mv-ink,#231F20);
  box-shadow:0 2px 10px rgba(19,0,38,.16);
  cursor:pointer;line-height:0;
  /* Asleep by default. JS puts .is-awake on the gallery for 2.5s after hover or
     scroll. pointer-events go with the fade so an invisible arrow is never
     clickable, and both :hover and :focus-visible override the timer - a
     hidden-but-focusable control is the trap this has to avoid.
     prefers-reduced-motion is respected via the shared block further down. */
  opacity:0;pointer-events:none;
  transition:background .14s ease,transform .14s ease,opacity .25s ease;}
body.mv2 .mv-gal.is-awake .mv-gal__nav{opacity:1;pointer-events:auto;}
body.mv2 .mv-gal__nav:focus-visible{opacity:1;pointer-events:auto;}
body.mv2 .mv-gal__nav:hover{opacity:1;pointer-events:auto;}
body.mv2 .mv-gal__nav--prev{left:8px;}
body.mv2 .mv-gal__nav--next{right:8px;}
body.mv2 .mv-gal__nav:hover{background:#fff;}
body.mv2 .mv-gal__nav:active{transform:translateY(-50%) scale(.94);}
body.mv2 .mv-gal__nav:focus-visible{outline:2px solid var(--mv-purple,#8300E9);outline-offset:2px;}
/* Kill Divi's injected arrow glyph on these buttons. */
body.mv2 .mv-gal__nav::before,
body.mv2 .mv-gal__nav::after{content:none !important;display:none !important;}
/* The stage is the swipe surface: let vertical panning scroll the page, and
   stop the browser turning a horizontal drag into a back-navigation. */
body.mv2 .mv-gal__stage{touch-action:pan-y;}
body.mv2 .mv-gal__img{-webkit-user-drag:none;user-select:none;}
}
@media (prefers-reduced-motion:reduce){
body.mv2 .mv-gal__nav{transition:none;}
}
/* MV2 GALLERY NAV ARROWS END */
/* MV2 GAL DOTS + STICKY BUY START */
/* DOTS: replace the position signal the hidden thumbnail strip used to give.
   Sit on the stage, phone+tablet only. Purple when current, translucent ink
   when not - reading as a set rather than as buttons. */
body.mv2 .mv-gal__dots{display:none;}
@media (max-width:980px){
body.mv2 .mv-gal__dots{
  display:flex;gap:7px;justify-content:center;align-items:center;
  position:absolute;left:0;right:0;bottom:10px;z-index:3;pointer-events:auto;}
body.mv2 .mv-gal__dot{
  width:9px;height:9px;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid rgba(255,255,255,.75);
  background:rgba(35,31,32,.28);
  transition:background .14s ease,transform .14s ease;}
body.mv2 .mv-gal__dot.is-on{
  background:var(--mv-purple,#8300E9);
  border-color:rgba(255,255,255,.9);
  transform:scale(1.25);}
body.mv2 .mv-gal__dot:focus-visible{outline:2px solid var(--mv-purple,#8300E9);outline-offset:2px;}
body.mv2 .mv-gal__dot::before,body.mv2 .mv-gal__dot::after{content:none !important;display:none !important;}
}

/* STICKY BUY BAR - PREVIEW, NOT WIRED.
   Phone + tablet only: the buy card scrolls away and there is no route back to
   it. Desktop keeps the panel in view, so the bar stays hidden there.
   HIDDEN UNTIL the real Add to cart leaves the viewport - JS toggles .is-vis
   from an IntersectionObserver on that button. translateY rather than display
   so it can slide rather than snap. */
body.mv2 .mv-stickybuy{display:none;}
@media (max-width:980px){
/* Column now: a name strip sits ABOVE the buy row, as a filled band.
   SIZE is the FDA note's 12px (measured off .mv-bens__note); WEIGHT is the
   save pill's 700 (measured off .mv-opt__year) - Matt specified each from a
   different existing element, so both are taken from the real computed values
   rather than guessed. White on the state colour, full-bleed, text inset to
   line up with the row beneath it. */
body.mv2 .mv-stickybuy__name{
  display:block;text-align:left;
  font-family:'Open Sans',system-ui,sans-serif;
  font-size:12px;font-weight:700;line-height:1.35;
  color:#fff;background:var(--mv-purple,#8300E9);
  /* Negative TOP margin as well as the sides: the bar carries 9px of its own
     top padding, which showed as a white strip above the band. -9px pulls the
     colour flush to the bar's top edge. If the bar's top padding ever changes,
     this number must change with it. */
  padding:2px 14px;margin:-9px -14px 0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.mv2 .mv-stickybuy__row{display:flex;align-items:center;gap:12px;width:100%;}
body.mv2 .mv-stickybuy{
  /* gap 2 -> 4: the name band sits flush to the top edge now, so the row below
     needed a little air off it. Chosen over trimming the button - 51px is
     already near the 44px minimum tap target, and this is the primary purchase
     control on a phone. */
  display:flex;flex-direction:column;align-items:stretch;gap:4px;
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  padding:9px 14px calc(9px + env(safe-area-inset-bottom,0px));
  background:rgba(255,255,255,.96);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  /* No border-top: the coloured name band now runs the full width and is its
     own separator. Leaving the border put a 1px grey line ABOVE the colour -
     the last of the white strip Matt spotted. The shadow still lifts the bar
     off the page content behind it. */
  box-shadow:0 -2px 14px rgba(19,0,38,.10);
  /* visibility, not just opacity: now that the button is WIRED and focusable it
     must leave the TAB ORDER and the accessibility tree while off-screen, or
     keyboard users hit an invisible control. The 0s delay holds it visible for
     the length of the slide-out, so the animation is not cut short. */
  transform:translateY(105%);opacity:0;pointer-events:none;visibility:hidden;
  transition:transform .22s ease,opacity .18s ease,visibility 0s linear .22s;}
body.mv2 .mv-stickybuy.is-vis{
  transform:translateY(0);opacity:1;pointer-events:auto;visibility:visible;
  transition:transform .22s ease,opacity .18s ease,visibility 0s;}
body.mv2 .mv-stickybuy__info{display:flex;flex-direction:column;gap:1px;min-width:0;}
/* The label is what stops a silently-changing number reading as a glitch. */
body.mv2 .mv-stickybuy__label{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:700;font-size:11.5px;letter-spacing:.10em;text-transform:uppercase;
  /* State colour, not grey. Subscribe already rendered its label green while
     buy-once sat in muted grey, so the two options read with different weight.
     Everything else in this bar - band and button - tracks the state, and the
     label should match rather than being the one neutral element. */
  color:var(--mv-purple,#8300E9);white-space:nowrap;}
body.mv2 .mv-stickybuy__line{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;}
body.mv2 .mv-stickybuy__price{
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:700;font-size:23px;line-height:1;color:var(--mv-ink,#231F20);}
body.mv2 .mv-stickybuy__was{font-size:13.5px;color:#8a8a93;text-decoration:line-through;}
body.mv2 .mv-stickybuy__save{font-size:12px;color:#6b6b73;white-space:nowrap;}
body.mv2 .mv-stickybuy__btn{
  flex:0 0 auto;margin-left:auto;
  background:var(--mv-purple,#8300E9);color:#fff;border:0;border-radius:10px;
  padding:13px 20px;cursor:pointer;
  font-family:var(--mv-font-display,'Barlow Condensed',sans-serif);
  font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.03em;
  transition:background .14s ease;}
body.mv2 .mv-stickybuy__btn:hover{background:#6E00C4;}
body.mv2 .mv-stickybuy__btn::before,body.mv2 .mv-stickybuy__btn::after{content:none !important;display:none !important;}
/* SUBSCRIBE STATE. The bar is appended to <body>, OUTSIDE .mv-pdp, so it never
   sees the --mv-purple token swap that greens the in-page button - it needs
   these explicit rules. Hover is hard-coded green for the same reason the grid
   needed its own: .mv-btn:hover's purple does not follow the swap either. */
/* Forced here, and ONLY here. A rule elsewhere in this file already asserts the
   brand-purple token on buttons at forced priority, and forced priority outranks
   specificity - which is why the plain version of this rule MATCHED, sat LATER
   and was MORE SPECIFIC, yet still lost. The base .mv-stickybuy__btn rule must
   stay unforced, or it would win this back and the green would never show. */
body.mv2 .mv-stickybuy.is-sub .mv-stickybuy__btn{background:#2F6B1C !important;}
body.mv2 .mv-stickybuy.is-sub .mv-stickybuy__btn:hover{background:#24551A !important;}
body.mv2 .mv-stickybuy.is-sub .mv-stickybuy__label{color:#2F6B1C;}
body.mv2 .mv-stickybuy.is-sub .mv-stickybuy__name{color:#fff;background:#2F6B1C;}
body.mv2 .mv-stickybuy.is-sub .mv-stickybuy__save{color:#2F6B1C;font-weight:600;}
body.mv2.woocommerce-page.single-product{padding-bottom:74px;}
}
@media (prefers-reduced-motion:reduce){
body.mv2 .mv-gal__dot{transition:none;}
}
/* MV2 GAL DOTS + STICKY BUY END */

/* MV2 BTN EDGE SEAM START */
/* Matt reported a faint hairline along the Add to cart edge that VANISHES ON
   HOVER, at phone AND desktop, in both buy states.
   MEASURED FIRST: the button and all five ancestors report zero border width,
   no shadow, no outline, and both pseudo-elements resolve to none. So NOTHING
   IS DRAWING IT - there is no style to delete.
   That leaves a sub-pixel compositing seam: a wide flex-sized button with a
   10px radius often lands on fractional device pixels, and the browser
   antialiases the edge. The hover clue is what points here - the background
   transition promotes the button to its own GPU layer, which re-rasterises the
   edge cleanly. Forcing that layer permanently makes the resting state render
   the way the hovered state already does.
   ZERO VISUAL CHANGE OTHERWISE. If the line survives this, the cause is
   elsewhere and this rule should be removed rather than added to. */
body.mv2 .mv-btn,
body.mv2 .mv-stickybuy__btn{
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;}
/* MV2 BTN EDGE SEAM END */

/* MV2 DRAWER CLOSE CIRCLE START */
/* The drawer close control had no visible affordance: transparent background,
   zero border, and a 10px radius that never showed because nothing was drawn.
   Measured 48x48 with padding 1px 6px, so the glyph sat off-centre inside it.
   Now a real circle. Hover reuses the account ghost-button recipe already used
   site-wide - purple-50 fill with a purple edge - rather than inventing a
   fourth hover treatment. The 48px box is KEPT, not trimmed: it is a tap
   target and already comfortably above the 44px minimum. */
body.mv2 .mv-drawer__x{
  display:flex;align-items:center;justify-content:center;
  width:48px;height:48px;padding:0;
  border:1px solid var(--mv-line,#E2E2E6);
  border-radius:50%;
  background:#fff;
  line-height:1;
  transition:background .14s ease,border-color .14s ease;}
body.mv2 .mv-drawer__x:hover{
  background:var(--mv-purple-50,#F5EDFC);
  border-color:var(--mv-purple,#8300E9);}
body.mv2 .mv-drawer__x:focus-visible{
  outline:2px solid var(--mv-purple,#8300E9);outline-offset:2px;}
/* Divi injects glyphs on buttons; kill them here as elsewhere. */
body.mv2 .mv-drawer__x::before,
body.mv2 .mv-drawer__x::after{content:none !important;display:none !important;}
/* MV2 DRAWER CLOSE CIRCLE END */

/* MV2 PAYMENT REASSURANCE START */
/* Sits directly above Place order, inside the order-review panel. Quiet by
   design - reassurance, not a badge. Green reads as 'safe' without competing
   with the purple CTA right beneath it. */
body.mv2 .mv-paysec{
  display:flex;align-items:flex-start;gap:8px;
  margin:0 0 14px;padding:10px 12px;
  background:#F2F8EF;border:1px solid #DCEBD4;border-radius:10px;
  font-size:12.5px;line-height:1.5;color:#3B5A2B;}
body.mv2 .mv-paysec__icon{flex:0 0 auto;margin-top:1px;color:#2F6B1C;}
@media (max-width:600px){
body.mv2 .mv-paysec{font-size:12px;padding:9px 10px;}
}
/* MV2 PAYMENT REASSURANCE END */

/* MV2 READABILITY BUMP START */
/* Secondary copy was sized for a designer's monitor, not a customer's arm's
   length. Trust list 13 -> 15px, unit line 12 -> 14px, FDA note 12 -> 13px,
   with line-height opened to match. The buying audience skews toward repeat,
   considered purchasers - the calculator's 'how long will this last' framing
   is aimed squarely at them - and 13px asks more of aging eyes than it needs
   to. Nothing here changes a layout: only type size and leading.
   These carry ONE EXTRA LEVEL OF SPECIFICITY over the originals so they win
   on the cascade alone, with no forced priority anywhere in this block. */
body.mv2 .mv-pdp .mv-pdp__trust li{font-size:15px;line-height:1.65;}
body.mv2 .mv-pdp .mv-pdp__trust li + li{margin-top:7px;}
body.mv2 .mv-pdp .mv-pdp__trustlink{font-size:15px;}
body.mv2 .mv-pdp .mv-pdp__unit{font-size:14px;line-height:1.7;}
/* The note's real parents are .mv-pdp__in inside .mv-pdp__sec--ben. An earlier
   selector here assumed a wrapper element that does not exist, so it matched
   nothing and the note stayed at 12px. Ancestor chain was MEASURED before this
   second attempt rather than guessed again. */
body.mv2 .mv-pdp .mv-bens__note{font-size:13px;line-height:1.7;}
/* Phone keeps a touch less, so the trust list cannot push the buy card down. */
@media (max-width:600px){
body.mv2 .mv-pdp .mv-pdp__trust li{font-size:14.5px;}
body.mv2 .mv-pdp .mv-pdp__trustlink{font-size:14.5px;}
}
/* MV2 READABILITY BUMP END */

/* MV2 PDP TRUST LINK START */
/* "See details" beside 30-day returns. Uses the info-card blue already chosen
   for the calculator icon (#1B63D6, ~5.9:1 on white, passes AA) so the two
   actionable marks on this page match. */
body.mv2 .mv-pdp__trustlink{
  color:#1B63D6;-webkit-text-fill-color:#1B63D6;
  text-decoration:underline;text-underline-offset:2px;
  font-weight:600;white-space:nowrap;margin-left:4px;}
body.mv2 .mv-pdp__trustlink:hover{color:#12489E;-webkit-text-fill-color:#12489E;}
body.mv2 .mv-pdp__trustlink::before,
body.mv2 .mv-pdp__trustlink::after{content:none !important;display:none !important;}
/* MV2 PDP TRUST LINK END */

/* MV2 HERO CTA BESIDE TITLE START  (2026-07-31, reversible - see the backup note) */
/* Matt: put the SHOP NOW drop to the RIGHT of 'LIVE IN MOTION'.
   The copy column is a FLEX COLUMN with order 1-5 (eyebrow, title, sub,
   features, cta). Flex cannot put two of those on one row without markup, so
   this switches the column to GRID at desktop and places items explicitly.
   Explicit grid-row/grid-column is used rather than relying on `order`,
   because order + auto-placement is very hard to reason about later.
   DESKTOP ONLY (>=981): below that the copy is a narrow overlay beside the
   bottle and there is no room for a 200px drop next to the headline.
   TO REVERT: delete this whole block, or restore the .bak-20260731-BEFORE-
   ctabesidetitle.txt copy from ow-backups/v2-webroot/. */
@media (min-width:981px){
body.mv2 .mv-hero__copy{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  /* Tuning the closeness of the drop to the headline lives in ONE place:
     --mv-cta-pull. Raise it to bring the drop nearer, lower it to back off.
     WHY A PULL IS NEEDED AT ALL: the h1 stretches to fill its grid column, so
     at 2844 the painted text ended at 2039 while its BOX ran to 2173 - 135px of
     empty box. Measured visual gap text-to-drop was 149px, not the 15px the box
     edges suggested. Shrinking the gap alone could never close it. */
  --mv-cta-pull:clamp(24px,2.3vw,72px);
  column-gap:clamp(8px,0.8vw,24px);
  align-items:start;}
body.mv2 .mv-hero__eyebrow{grid-column:1 / -1;grid-row:1;}
body.mv2 .mv-hero__title{grid-column:1;grid-row:2;}
/* The drop sits in column 2 on the TITLE's row, vertically centred against it. */
body.mv2 .mv-hero__cta{grid-column:2;grid-row:2;align-self:center;justify-self:start;
  /* ⚠ A NEGATIVE MARGIN DOES NOT WORK HERE and was tried first: the title
     column is minmax(0,1fr), so any space freed is immediately reclaimed by the
     title, which grew 663 -> 724 while the visual gap stayed at exactly 149px.
     ANYTHING THAT CHANGES LAYOUT GETS COMPENSATED THE SAME WAY.
     position:relative + left moves the drop VISUALLY while leaving its layout
     box where it was, so the grid has nothing to reclaim.
     ⚠ NOT transform either - the resting transform is rotate(45deg) and the
     mvDropFall animation drives transform during the fall, so a translate here
     would be wiped the moment the drop is clicked. */
  position:relative;
  left:calc(-1 * var(--mv-cta-pull));}
body.mv2 .mv-hero__sub{grid-column:1 / -1;grid-row:3;}
body.mv2 .mv-hero__features{grid-column:1 / -1;grid-row:4;}
}
/* MV2 HERO CTA BESIDE TITLE END */

/* MV2 HERO CTA BESIDE TITLE - TABLET */
/* Same treatment as desktop, gated 600-980 so PHONE is untouched: below 600
   the copy is only ~234px wide and the features are display:none, so there is
   no room to put a 147px drop beside the headline.
   MEASURED FIRST - it fits: at 834 the title text is 159px and the drop 147px
   inside a 409px copy column; at 768 it is 146+147 in 376; at 600, 130+147 in
   292 (tight but clear). Timing, particle count, heights and sizes are all
   SHARED with desktop - they live in the water-drop block and are not
   breakpoint-scoped, so nothing needs duplicating here.
   NOTE: this does NOT move the copy or the bottle. On tablet the copy is on
   the LEFT and the bottle on the RIGHT (measured), the mirror of desktop. */
/* ⚠ LOWER BOUND RAISED 600 -> 720 AFTER MEASURING. At 600 the copy column is
   only 292px, so a 147px drop left 145px for the headline: it wrapped to FOUR
   lines and the pull dragged the drop 16px OVER the text. 768 and 834 are fine
   (2 lines, gaps 25 and 44). Below 720 the hero keeps its known-good stacked
   flex layout with the drop under the features. */
@media (min-width:720px) and (max-width:980px){
body.mv2 .mv-hero__copy{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:clamp(6px,1.2vw,16px);
  align-items:start;
  --mv-cta-pull:clamp(10px,2vw,26px);}
body.mv2 .mv-hero__eyebrow{grid-column:1 / -1;grid-row:1;}
body.mv2 .mv-hero__title{grid-column:1;grid-row:2;}
body.mv2 .mv-hero__cta{grid-column:2;grid-row:2;align-self:center;justify-self:start;
  position:relative;left:calc(-1 * var(--mv-cta-pull));
  /* order is irrelevant in explicit grid placement, but the desktop block
     leaves order:5 on this element and an unplaced sibling would auto-flow
     around it - every child is placed explicitly here for the same reason. */
  margin-top:0;}
body.mv2 .mv-hero__sub{grid-column:1 / -1;grid-row:3;}
body.mv2 .mv-hero__features{grid-column:1 / -1;grid-row:4;}
}
/* MV2 HERO CTA BESIDE TITLE - TABLET END */


/* MV2 SHOP SCROLL TARGET START */
/* Matt: the Shop menu item and the Shop Now button both land slightly short of
   the products section. mv2ShopTarget() in mv2-components.php now scrolls to
   the .mv-intro that precedes the products section - its VISIBLE start - so the
   margin here only has to clear the sticky header, which is a CONSTANT.
   The old anchor's 270px was 189px of CONTENT HEIGHT plus the header, and that
   content height moves whenever the intro paragraph wraps differently, so it
   was only ever correct at one viewport width.
   Same 81/113 pair used elsewhere for the sticky-header offset. */
/* ⚠⚠ WORDPRESS SETS scroll-padding-top ON <html> from
   var(--wp-admin--admin-bar--height). SCROLL-PADDING ON THE SCROLLER ADDS TO
   SCROLL-MARGIN ON THE TARGET, so the two stack. Worse, on a logged-in page
   where the bar is NOT painted the variable still resolves to 32px - measured
   on mv3, the section landed 32px low and left a hero strip showing.
   SUBTRACT IT BACK rather than fight it: the calc collapses to the header
   height whether the bar is painted or not, which is why no separate admin-bar
   rule is needed any more. Fallback 0px covers themes without the variable. */
/* ⚠⚠ 81 -> 80 AND 73 -> 72 ON 2026-08-02: Matt still saw "a little 1px bit of
   the hero" once the scroll settled. MEASURED SUB-PIXEL: the header is
   80.667px tall, NOT 81 - its border-bottom is 0.666667px. An 81px margin
   therefore OVERSHOT by 0.333px, and at devicePixelRatio 1.5 that third of a
   CSS pixel paints as a full device pixel of hero.
   ⭐ ROUND DOWN, DO NOT CHASE THE FRACTION. Landing 1px HIGH tucks the top of
   the section a hair UNDER the sticky header, where it is invisible (both are
   white). Landing 1px LOW shows hero. The error is only safe in one direction,
   and a hardcoded 80.667 would break the moment the border or zoom changes.
   ⚠ WHOLE-PIXEL CHECKS CANNOT SEE THIS - Math.round() hid it for several
   passes. Compare exact getBoundingClientRect() floats. */
body.mv2 .ow-main > .mv-intro{
  scroll-margin-top:calc(80px - var(--wp-admin--admin-bar--height, 0px));}
/* ⚠ THE HEADER IS NOT ONE HEIGHT. Measured: 81px at >=981 but 73px at <=980.
   A flat 81 left an 8px strip of hero showing under the header at tablet -
   exactly the '6 to 8px' Matt reported. The margin has to track the header. */
@media (max-width:980px){
body.mv2 .ow-main > .mv-intro{
  scroll-margin-top:calc(72px - var(--wp-admin--admin-bar--height, 0px));}
}
/* MV2 SHOP SCROLL TARGET END */

/* MV2 HEADER LOGO SIZE - TABLET START */
/* Matt: the header logo could easily be bigger - 'at least what equals the
   height of the hamburger menu'. MEASURED: at <=980 the wordmark was 14px tall
   and 131px wide while the burger control is a 44x44 box, so the logo read as
   tiny beside it. Desktop was already 32px.
   ⚠⚠ WIDTH IS THE ONLY LEVER HERE - height is pinned to auto with forced
   priority further up the stylesheet, so setting height does nothing.
   THE CALCULATION: viewBox is 231.45 x 25, i.e. an aspect of 9.259:1, so the
   rendered height is simply width / 9.259. Matt's target is 20px tall, giving
   20 x 9.259 = the width below.
   ⚠ TWO EARLIER SIZES WERE WRONG, FOR DIFFERENT REASONS. Matching the
   hamburger's 44x44 TAP TARGET gave a wordmark about three times too wide
   ('way too big'); matching its VISIBLE GLYPH (.mv-burger__bar, 22x16) landed
   back within a pixel or two of the original 131x14 and read as no change.
   THE HEIGHT IS A DESIGN CHOICE, NOT SOMETHING DERIVABLE FROM THE BURGER -
   ask for the number rather than inferring it. */
/* ⚠⚠ BAND IS 600-860 DELIBERATELY. The pin below also covers PHONE, and Matt
   asked for phone to be left alone ('phone is a whole other thing'). Above 860
   the logo is already 32px and is not touched. */
@media (min-width:600px) and (max-width:860px){
/* ⚠ SETTING HEIGHT HERE DOES NOTHING. An existing rule at (max-width:860px)
   declares height:auto with FORCED PRIORITY on this exact selector, so the
   height is derived from the WIDTH - which was pinned at 131px, giving 14px.
   Drive the WIDTH instead and let that forced auto height follow the 9.26:1
   aspect: 407px wide -> 44px tall, matching the 44px burger control.
   Room to the right of the logo was measured first: 427px at 720, 475 at 768,
   541 at 834 - so 407 fits everywhere, tightest at 720. */
/* ⚠ ALL THREE pinned declarations must be raised together - width AND
   max-width on the svg AND max-width on its anchor - or max-width still clamps
   it at 131px. Forced priority is required because the existing pin uses it;
   two earlier attempts without it lost outright. */
body.mv2 .mv-head__logo svg{width:185px !important;max-width:185px !important;}
body.mv2 .mv-head__logo{max-width:185px !important;}
}
/* MV2 HEADER LOGO SIZE - TABLET END */

/* MV2 TOPBAR MESSAGE ROTATION START */
/* Both messages occupy THE SAME GRID CELL (grid-area:1/1), so the container
   sizes itself to the WIDEST of them and nothing beside it moves when the text
   swaps. Absolute positioning would have collapsed the container to zero width
   and dragged the separator and phone number left.
   visibility is animated alongside opacity so a faded-out message is not a
   click or tab target sitting invisibly on top of the visible one. */
body.mv2 .mv-rot{display:inline-grid;vertical-align:bottom;}
body.mv2 .mv-rot__i{
  grid-area:1 / 1;
  /* The container is as wide as the LONGEST message, so the shorter one would
     sit centred inside that box and appear to shift between rotations. Both
     are pinned to the start edge so the text begins at the same x every time. */
  justify-self:start;text-align:left;
  opacity:0;visibility:hidden;
  /* ⚠ THE VISIBILITY DELAY MUST EQUAL THE FADE DURATION. It holds the outgoing
     message hittable until the fade finishes; if it is shorter the message
     vanishes from the hit-test mid-fade, if longer it lingers as an invisible
     overlay. Change the two together. */
  transition:opacity 1.7s ease, visibility 0s linear 1.7s;}
body.mv2 .mv-rot__i.is-on{
  opacity:1;visibility:visible;
  transition:opacity 1.7s ease, visibility 0s;}
/* The promo code should read as the actionable part of the sentence. */
body.mv2 .mv-rot__i strong{font-weight:700;letter-spacing:.02em;}
/* PHONE: the top bar is a single narrow centred strip, so a left-pinned
   message reads as off-centre there even though it is correct on wider screens
   where it sits after the phone number. Centre BOTH items so the shorter one
   does not drift relative to the longer. */
@media (max-width:599px){
body.mv2 .mv-rot__i{justify-self:center;text-align:center;}
}
/* No crossfade when the user has asked for less motion - the JS also bails out,
   so this is belt and braces and keeps the first message readable. */
@media (prefers-reduced-motion: reduce){
body.mv2 .mv-rot__i{transition:none;}
}
/* MV2 TOPBAR MESSAGE ROTATION END */

/* MV2 ACCOUNT TOP SPACING + NOTICE ON TOP START */
/* ⚠⚠ THE 72px WAS NOT MISSING - IT WAS DOUBLED. Measured on the served page:
   header bottom 117 -> .ow-main padding-top 72 -> 189 -> .woocommerce
   padding-top 72 -> 261, where the card started. 144px in total.
   ow-base gives .ow-main its 72; .woocommerce then adds its own. Zeroing the
   INNER one leaves exactly one 72px gap below the header.
   ⚠ The old Divi rules that used to control this (.et_pb_section_0 /
   .et_pb_row_2 padding) are DEAD after the cutover - ow-base emits no
   .et_pb_* wrappers at all, so anything scoped to them silently does nothing. */
body.mv2.woocommerce-account:not(.logged-in) .woocommerce{padding-top:0;}
/* The whitelist notice now renders ABOVE the card (moved 2026-08-02), so its
   spacing flips: no top margin, and a gap BELOW it before the card. */
body.mv2.woocommerce-account:not(.logged-in) .mv-auth__notice{
  margin:0 auto 24px;}
/* MV2 ACCOUNT TOP SPACING + NOTICE ON TOP END */

/* MV2 DASH NAME CAPITALISATION START */
/* Customers type their own first name at registration, so it arrives however
   they typed it - 'matt', 'MATT', 'matt haver'. The greeting should read as a
   name regardless.
   capitalize (rather than ::first-letter) is used because the element can hold
   more than one word - it is first + last, with the surname simply empty on
   some accounts - and this lifts the first letter of EACH word.
   ⚠ NOTE: text-transform:capitalize only ever UPPERCASES a leading letter; it
   never lowercases the rest. An all-caps 'MATT' therefore stays 'MATT'. Fixing
   that would mean rewriting the stored value, which is customer data and is
   deliberately left alone - this is display only. */
/* ⚠⚠ THERE ARE TWO NAME ELEMENTS ON THE DASHBOARD AND ONLY ONE IS VISIBLE.
   .mvh__name  = the 2026-07-29 hero rebuild - THIS IS THE ONE THAT PAINTS.
   .mv-dash__hero-name = the ORIGINAL hero, still in the markup.
   Styling only the original changed nothing on screen. Both are covered here
   so it stays correct whichever renders.
   Source order matters and is on our side: mv2-design-system.css is enqueued
   AFTER mv2-dash-hero.css, and that file sets no text-transform on .mvh__name,
   so no specificity arms race is needed. */
body.mv2.woocommerce-account.logged-in .mv-dash__hero-name,
body.mv2.woocommerce-account.logged-in .mvh__name{text-transform:capitalize;}
/* MV2 DASH NAME CAPITALISATION END */

/* MV2 HERO WAVES START */
/* Ported from the dashboard identity card (.mvh__waves). Same three SVG paths
   and gradients; the gradient IDs were renamed mvhW* -> mvhrW* so the two can
   never collide if both ever render on one page.
   ⚠ THE DASHBOARD SIZES THESE AT height:44%, WHICH CANNOT COME ACROSS. That
   card is ~344px tall so 44% is ~150px; the hero is ~883px, where 44% would be
   ~390px of wave. Sized here in its own right instead.
   ⚠ preserveAspectRatio is set to none, so the artwork STRETCHES to whatever
   box it is given - height is a free choice, but too little squashes the
   crests flat.
   ⚠ +10% APPLIED 2026-08-02 (Matt: "a little bit more height"). EVERY value in
   both clamps was scaled by 1.1 - floor, percentage AND ceiling. Scaling only
   the percentage would have done nothing at the widths where the floor or the
   ceiling is the one actually binding, which is most phone widths.
   Desktop 132 -> ~146px measured; phone/tablet 64 -> ~70px.
   Sits between the glow (z 0) and the bottle (lifted to z 2) so the bottle
   rises IN FRONT of the waves; copy (3) and mark (4) are unaffected.
   pointer-events:none so it can never intercept the SHOP NOW drop. */
body.mv2 .mv-hero__waves{
  position:absolute;left:0;right:0;bottom:-1px;
  width:100%;height:clamp(99px,16.5%,209px);
  z-index:1;pointer-events:none;display:block;}
body.mv2 .mv-hero__stage{z-index:2;}
/* Phone/tablet: the hero is shorter and the bottle sits lower, so keep the
   band shallower or it reads as a stripe rather than an edge. */
@media (max-width:980px){
body.mv2 .mv-hero__waves{height:clamp(70px,12.1%,132px);}
}
/* MV2 HERO WAVES END */

/* MV2 SHOP SECTION BREATHING ROOM START */
/* Matt: "a 1px line at the bottom of that section that touches the product
   cards". MEASURED: the lowest card bottom and the hairline are BOTH at y=3090
   - a gap of exactly ZERO. #shop had padding-bottom:0 while the section below
   it (.mv-fruits) has padding-top:72px, so the divider hugged the cards on one
   side and had generous space on the other.
   ⚠ THE LINE ITSELF IS CORRECT AND STAYS: it is 1px solid var(--mv-line)
   (#E2E2E6), the same hairline used by .mv-head and .mv-trust. It only LOOKED
   wrong because it was flush against the cards. */
body.mv2 #shop{padding-bottom:72px;}
@media (max-width:767px){
body.mv2 #shop{padding-bottom:40px;}
}
/* MV2 SHOP SECTION BREATHING ROOM END */


/* MV2 FRUITS SECTION BACKGROUND START */
/* The products section and the fruits section were BOTH white, separated only
   by a 1px hairline, so the page read dark -> white -> white -> near-white ->
   dark with no step between the money section and the story section.
   ⭐ THE DECIDING DETAIL: every fruit already sits on a WHITE CIRCULAR DISC
   (.mv-fruit__disc, border-radius:50%). On a white section those 19 discs were
   INVISIBLE. Tinting the section switches on a design element that already
   existed, and it also means tile legibility is unaffected by whatever colour
   is chosen - the discs protect the artwork.
   ⚠⚠ WHY PALE SAGE AND NOT A REAL GREEN. Green is this page's ACCENT and it
   carries MEANING: .mv-hero__eyebrow #58B735, .mv-hf__icon #7CFC00, and most
   importantly .mv-opt__save #2F6B1C - the "SAVE X%" badges sitting in the
   products section DIRECTLY ABOVE this one. A saturated green field would
   dilute the one colour that means "saving money" on the money page.
   #F1F7ED is warm off-white with a green cast - far enough below the accents
   in saturation that the badges still read as signals. DO NOT deepen this
   toward mint or spring green without re-checking those badges. */
body.mv2 .mv-fruits{background:#F1F7ED;}
/* MV2 FRUITS SECTION BACKGROUND END */


/* MV2 HERO WAVES MOTION START */
/* A slow parallax drift on the three wave layers - not a scrolling loop.
   ⚠⚠ WHY NOT A SEAMLESS SCROLL: the three paths are hand-drawn across the full
   0-1440 viewBox and are NOT periodic. Only the top one meets at the same
   height on both ends (150 -> 150); the other two are off by 4px (196 -> 200,
   250 -> 254). Translating them continuously would show a seam.
   ⚠ EACH LAYER IS SCALED TO 1.08 SO THE DRIFT NEVER EXPOSES AN EDGE. The paths
   fill down to y=320, so a bare translate would open a wedge of hero colour at
   the bottom corner. The 8% overscale covers a +/-14 unit drift with room to
   spare - RAISE THE SCALE IF THE DRIFT AMPLITUDE IS EVER INCREASED.
   ⭐ AMPLITUDE RAISED 14px -> 42px AND TIMINGS 21/27/34s -> 13/17/22s (Matt:
   "i can sorta see something.. very faint.. we can bump it up"). THE OVERSCALE
   WENT 1.08 -> 1.14 AT THE SAME TIME, exactly because of the rule above: 1.14
   on a 1440 viewBox gives ~100 units of cover per side, comfortably clearing a
   42-unit drift. Change one of these three numbers and you must re-check the
   other two.
   ⭐ RAISED AGAIN: 42px -> 90px, timings 13/17/22s -> 9/12/16s, overscale
   1.14 -> 1.20. THE ARITHMETIC THAT GOVERNS THIS: cover per side = 720 * (S-1)
   on a 1440 viewBox, so 1.20 gives 144 units against a 90-unit drift. Anything
   past ~140px of drift needs a bigger scale again.
   ⭐ THE DASHBOARD CARD'S WAVES SHARE THESE RULES. Same artwork: viewBox
   0 0 1440 320, preserveAspectRatio none, three paths.
   Because the overscale and the drift are BOTH in viewBox units, the
   cover-to-drift ratio is CONSTANT however wide the element renders - so the
   1392px dashboard card and the 325px phone card are equally safe with no
   separate numbers. The card is overflow:hidden with a 26px radius, which clips
   the overscale at the card edge.
   ⚠ DELIBERATELY ONE RULE SET, NOT TWO. Splitting them would let the two sets
   of waves fall out of sync on any future tweak.
   Different durations per layer are what reads as flow; identical timings would
   just look like the whole graphic sliding. The middle layer runs in reverse so
   the layers separate and rejoin instead of moving as a block.
   transform-box:view-box keeps the origin in viewBox space, not the path's own
   bounding box, so all three scale about the same centre. */
@keyframes mvWaveDrift{
  0%,100%{transform:scaleX(1.20) translateX(-90px);}
  50%    {transform:scaleX(1.20) translateX(90px);}
}
body.mv2 .mv-hero__waves path,
body.mv2 .mvh__waves path{
  transform-box:view-box;transform-origin:center;
  animation:mvWaveDrift 9s ease-in-out infinite;}
body.mv2 .mv-hero__waves path:nth-of-type(2),
body.mv2 .mvh__waves path:nth-of-type(2){animation-duration:12s;animation-direction:reverse;}
body.mv2 .mv-hero__waves path:nth-of-type(3),
body.mv2 .mvh__waves path:nth-of-type(3){animation-duration:16s;}
/* Ambient motion with no user intent behind it - exactly the case this setting
   exists for. */
@media (prefers-reduced-motion: reduce){
body.mv2 .mv-hero__waves path,
body.mv2 .mvh__waves path{animation:none;transform:none;}
}
/* MV2 HERO WAVES MOTION END */

/* MV2 DASH PILL LINKS START */
/* The payment and address pills are now real anchors (payment-methods and
   edit-address). Without this they inherit the theme link colour and underline
   and stop looking like pills.
   They are anchors rather than JS handlers on purpose - the account header is
   rebuilt via innerHTML after the footer JS runs, which would destroy a
   listener. See the note on mv2dh_pill(). */
body.mv2 a.mvh__pill{
  text-decoration:none;color:inherit;cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;}
body.mv2 a.mvh__pill:hover,
body.mv2 a.mvh__pill:focus-visible{
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(0,0,0,.28);}
/* Keyboard users need a visible focus ring - the hover lift alone is too subtle. */
body.mv2 a.mvh__pill:focus-visible{outline:2px solid #C77DFF;outline-offset:2px;}
@media (prefers-reduced-motion: reduce){
body.mv2 a.mvh__pill{transition:none;}
body.mv2 a.mvh__pill:hover,
body.mv2 a.mvh__pill:focus-visible{transform:none;}
}
/* MV2 DASH PILL LINKS END */
