/* =====================================================================
   Product page — new design (Steven Saldana wireframe, Oct 2026).
   Depends on home-v2.css (header, footer, tokens, .hv2-* helpers) and
   shop-v2.css (.sv2-card for the "pairs well with" grid, .sv2-badge).
   The purchase block, autoship form/sidebar, gallery swipers and reviews
   keep their old markup and scripts; this file only restyles them.
   ===================================================================== */
section[class^="pv2-"] { padding: 80px 0; color: var(--hv2-body); background: #fff; font-family: var(--hv2-font); overflow-x: clip; }
section[class^="pv2-"] :where(h1, h2, h3) { margin: 0; color: var(--hv2-ink); line-height: 1.25; font-family: var(--hv2-font); }
section[class^="pv2-"] :where(h2) { font-size: clamp(30px, 3.2vw, 40px); font-weight: 800; letter-spacing: -0.01em; }
section[class^="pv2-"] :where(h2) span { color: var(--hv2-teal); }
section[class^="pv2-"] :where(h3) { font-size: 22px; font-weight: 700; }
section[class^="pv2-"] :where(p) { margin: 0; font-size: 16px; line-height: 1.6; }
section[class^="pv2-"] :where(ul, ol) { margin: 0; padding: 0; list-style: none; }
section[class^="pv2-"] :where(a) { color: inherit; text-decoration: none; }
section[class^="pv2-"] :where(img) { max-width: 100%; height: auto; display: block; }
section[class^="pv2-"] .hv2-head { text-align: center; max-width: 760px; margin: 0 auto 44px; }
section[class^="pv2-"] .hv2-head .hv2-pill { margin-bottom: 18px; text-transform: uppercase; letter-spacing: .06em; font-size: 14px; }
section[class^="pv2-"] .hv2-head h2 { margin-bottom: 14px; }
section[class^="pv2-"] .hv2-head p { font-size: 18px; line-height: 1.65; font-weight: 500; }
.pv2-pill--white { background: #fff; }
.pv2-teal { background: var(--hv2-teal-wash) !important; }
.pv2-inside, .pv2-whatsinside, .pv2-timeline, .pv2-compare, .pv2-faq { background: var(--hv2-teal-pale) !important; }

/* ---------- hero: gallery + buy box ---------- */
.pv2-hero { padding: 48px 0 64px; }
.pv2-hero__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
.pv2-hero__grid > * { min-width: 0; }
@media (min-width: 960px) { .pv2-hero__grid { grid-template-columns: 540px 1fr; gap: 60px; } }

.pv2-gallery { position: relative; }
.pv2-gallery__badge { position: absolute; top: 20px; left: 20px; z-index: 3; height: 29px; font-size: 12px; }
.pv2-gallery .main-swiper { width: 100% !important; max-width: none !important; margin: 0 !important; overflow: visible !important; }
.pv2-gallery .main-swiper > .swiper-wrapper { align-items: center; border-radius: 20px; background: #EDF7FA; overflow: hidden; }
.pv2-gallery .main-swiper > .swiper-wrapper .swiper-slide { display: flex; align-items: center; justify-content: center; height: 560px; padding: 32px; background: #EDF7FA; }
.pv2-gallery .main-swiper > .swiper-wrapper .swiper-slide img { max-height: 496px; width: auto; max-width: 100%; object-fit: contain; border-radius: 14px; cursor: zoom-in; }
.pv2-gallery .thumbnail-swiper { margin: 14px 0 0 !important; width: 100% !important; height: auto !important; overflow: hidden; }
.pv2-gallery .thumbnail-swiper .swiper-wrapper { height: auto !important; top: auto !important; left: auto !important; transform: none !important; justify-content: center; }   /* style.css centres it with translate(-50%,-50%) */
.pv2-gallery .thumbnail-swiper .swiper-slide { width: 98px !important; height: 98px !important; flex: none; margin: 0 6px !important; border: 1px solid #E5E5E5; border-radius: 12px; background: #F2F2F2; display: flex; align-items: center; justify-content: center; overflow: hidden; cursor: pointer; opacity: 1 !important; }
.pv2-gallery .thumbnail-swiper .swiper-slide { padding: 4px !important; }
.pv2-gallery .thumbnail-swiper .swiper-slide img { height: 86px !important; width: auto !important; max-width: 86px; object-fit: contain; border: 0 !important; border-radius: 8px; transform: none !important; }
.pv2-gallery .thumbnail-swiper .swiper-slide:hover, .pv2-gallery .thumbnail-swiper .swiper-slide-thumb-active img { transform: none !important; }
.pv2-gallery .thumbnail-swiper .swiper-slide-thumb-active { border: 2px solid var(--hv2-teal); background: var(--hv2-teal-pale); }
.pv2-gallery .srt_desc.alternative_details { margin-top: 14px; font-size: 14px; font-weight: 600; color: var(--hv2-body); text-align: center; }
@media (max-width: 599px) { .pv2-gallery .main-swiper > .swiper-wrapper .swiper-slide { height: 380px; padding: 20px; } .pv2-gallery .main-swiper > .swiper-wrapper .swiper-slide img { max-height: 340px; } }

.pv2-buy, .pv2-buy.ipad_center { text-align: left !important; }
.pv2-buy.ipad_center > * { text-align: left; }
.pv2-buy .pv2-pill { margin-bottom: 14px; text-transform: none; }
.pv2-sold { background: none !important; border: 0 !important; padding: 0 !important; width: auto !important; border-radius: 0 !important; box-shadow: none !important; display: flex !important; align-items: center; gap: 8px; margin: 0 0 18px !important; font-size: 16px; font-weight: 500; color: var(--hv2-ink); font-family: var(--hv2-font); text-align: left; justify-content: flex-start; }
.pv2-sold .bottles-sold-highlight-number { font-weight: 700; }
.pv2-title { font-size: clamp(38px, 4.4vw, 55px); font-weight: 700; line-height: 1.18; margin-bottom: 10px; }
.pv2-title sup { font-size: .4em; }
.pv2-short { font-size: 18px; line-height: 1.6; font-weight: 500; color: var(--hv2-body); margin: 0 0 16px; }
.pv2-rating { display: inline-flex; float: none; align-items: center; gap: 10px; margin: 0 0 20px; padding: 10px 18px 10px 12px; border-radius: 999px; background: var(--hv2-teal-pale); border: 1px solid #E5E5E5; color: var(--hv2-ink); font-size: 15px; font-weight: 500; text-decoration: none !important; }
.pv2-rating .rating-star .fa-star { font-size: 14px; color: #d9d9d9; }
.pv2-rating .rating-star .fa-star.checked { color: var(--hv2-star); }
.pv2-rating b { font-weight: 700; }
.pv2-points { margin: 0 0 22px !important; }
.pv2-points li { position: relative; padding-left: 34px; margin-bottom: 12px; font-size: 16px; font-weight: 700; color: var(--hv2-ink); line-height: 1.4; }
.pv2-points li::before { content: "\2713"; position: absolute; left: 0; top: 0; width: 22px; height: 22px; border-radius: 50%; background: var(--hv2-teal); color: #fff; font-size: 12px; font-weight: 700; display: grid; place-items: center; }
.pv2-member { margin: 0 0 10px; font-size: 13px; font-weight: 700; color: var(--hv2-teal); text-transform: uppercase; letter-spacing: .04em; text-align: left !important; }

/* purchase type (logged-in autoship) — old markup, new look */
.pv2-buy .purchase-options { display: flex; flex-direction: column; gap: 10px; margin: 0 0 12px; max-width: 540px; }
.pv2-buy .purchase-option-item { position: relative; display: block; padding: 16px 20px 16px 56px; border: 1px solid var(--hv2-line); border-radius: 12px; background: #fff; cursor: pointer; }
.pv2-buy .purchase-option-item.active { border: 2px solid var(--hv2-teal); background: var(--hv2-teal-wash); }
.pv2-buy .purchase-option-item input[type="radio"] { position: absolute; left: 20px; top: 20px; width: 24px; height: 24px; margin: 0; accent-color: var(--hv2-teal); }
.pv2-buy .purchase-option-item label { margin: 0; font-size: 16px; font-weight: 700; color: var(--hv2-ink); cursor: pointer; }
.pv2-buy .autoship-info-icon { margin-left: 8px; color: var(--hv2-teal); cursor: pointer; }
.pv2-buy .autoship-subtitle { font-size: 13px; color: var(--hv2-muted); margin-top: 4px; }
.pv2-buy #autoship-form { max-width: 540px; margin-bottom: 12px; }
.pv2-buy .autoship-form-content { border: 1px solid var(--hv2-line); border-radius: 12px; padding: 18px 20px; background: #fff; }
.pv2-buy .autoship-label { font-size: 13px; font-weight: 700; color: var(--hv2-ink); }
.pv2-buy .autoship-summary { margin-top: 14px; padding: 14px; border-radius: 10px; background: var(--hv2-teal-wash); font-size: 14px; }
.pv2-buy .autoship-summary h4 { font-size: 15px; font-weight: 700; margin: 0 0 8px; }

.pv2-option { display: flex; align-items: center; gap: 14px; max-width: 540px; min-height: 62px; padding: 10px 20px; border: 2px solid var(--hv2-teal); border-radius: 12px; background: #fff; margin: 0 0 12px; }
.pv2-option__radio { width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--hv2-teal); position: relative; flex: none; }
.pv2-option__radio::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--hv2-teal); }
.pv2-option__title { flex: 1; font-size: 16px; font-weight: 700; color: var(--hv2-ink); }
.pv2-price { margin: 0 !important; font-size: 18px !important; font-weight: 700 !important; color: var(--hv2-ink) !important; white-space: nowrap; text-align: right; }
.pv2-price del { font-size: 14px; font-weight: 500; color: #999; margin-right: 8px; }

/* quantity + add to cart (old markup) */
.pv2-buy .quantity_cart_main { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 11px; max-width: 540px; margin: 0 0 18px; align-items: stretch; }
.pv2-buy .quantity { display: inline-flex; align-items: stretch; height: 57px; width: 166px; flex: none; border: 1px solid var(--hv2-body); border-radius: 12px; background: #fff; overflow: hidden; margin: 0; }
.pv2-buy .quantity button { flex: 1; border: 0; background: none; font-size: 22px; color: var(--hv2-ink); cursor: pointer; font-family: var(--hv2-font); padding: 0; width: auto; height: auto; border-radius: 0; }
.pv2-buy .quantity button:hover { background: var(--hv2-teal-wash); }
.pv2-buy .quantity input { width: 56px; height: auto; border: 0; border-left: 1px solid var(--hv2-body); border-right: 1px solid var(--hv2-body); border-radius: 0; text-align: center; font-size: 20px; font-weight: 600; color: var(--hv2-ink); font-family: var(--hv2-font); background: #fff; margin: 0; padding: 0; }
.pv2-buy .cart_btn { flex: 1; min-width: 200px; }
.pv2-buy .cart_btn a.add_to_cart { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 57px; border-radius: 8px; background: var(--hv2-teal); color: #fff !important; font-size: 16px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; text-decoration: none !important; border: 0; transition: background .15s ease; }
.pv2-buy .cart_btn a.add_to_cart:hover { background: var(--hv2-teal-deep); }
.pv2-buy .p_ca_not_allow_details, .pv2-buy .alternative_details { font-weight: 700; color: var(--hv2-ink); margin-bottom: 10px; }
.pv2-buy .alternative_details a { color: var(--hv2-teal); text-decoration: underline; }
.pv2-trust { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 24px !important; font-size: 14px; font-weight: 600; color: var(--hv2-body); }
.pv2-trust li { position: relative; padding-left: 18px; }
.pv2-trust li::before { content: ""; position: absolute; left: 0; top: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--hv2-teal); }
.pv2-benefits { justify-content: flex-start !important; gap: 22px 28px; }

/* autoship info sidebar (old markup) */
.pv2-hero .autoship-sidebar { font-family: var(--hv2-font); }

/* ---------- what's happening inside ---------- */
.pv2-inside__row { display: grid; grid-template-columns: 1fr; gap: 30px; align-items: center; margin-bottom: 48px; }
.pv2-inside__img { width: 100%; border-radius: 16px; object-fit: cover; }
.pv2-toxins { display: flex; flex-direction: column; gap: 16px; }
.pv2-toxin { display: flex; gap: 16px; align-items: flex-start; padding: 20px 22px; border: 1px solid #E5E5E5; border-radius: 14px; background: #fff; }
.pv2-toxin i { flex: none; width: 36px; height: 36px; border-radius: 50%; border: 2px solid #D43838; color: #D43838; font-style: normal; font-weight: 800; font-size: 18px; display: grid; place-items: center; }
.pv2-toxin p { font-size: 16px; line-height: 1.55; font-weight: 500; }
.pv2-effects h3 { font-size: 26px; font-weight: 800; margin-bottom: 18px; }
.pv2-effects li { position: relative; padding-left: 30px; margin-bottom: 14px; font-size: 17px; line-height: 1.55; font-weight: 500; }
.pv2-effects li::before { content: "\2726"; position: absolute; left: 0; top: 0; color: var(--hv2-teal); font-size: 18px; font-weight: 700; }
@media (min-width: 900px) {
    .pv2-inside__row { grid-template-columns: 470px 1fr; gap: 56px; }
    .pv2-inside__row--effects { grid-template-columns: 1fr 540px; }
}

/* ---------- proven protection ---------- */
.pv2-protect__cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.pv2-protect__cards img { width: 100%; border-radius: 16px; }
@media (min-width: 900px) { .pv2-protect__cards { grid-template-columns: repeat(4, 1fr); gap: 24px; } }

/* ---------- what's inside ---------- */
.pv2-ingcards { display: grid; grid-template-columns: 1fr; gap: 24px; margin-bottom: 24px; }
.pv2-ingcard { padding: 32px; border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; }
.pv2-ingcard small { display: block; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--hv2-teal); margin-bottom: 12px; }
.pv2-ingcard h3 { font-size: 28px; font-weight: 800; margin-bottom: 14px; }
.pv2-ingcard p { font-size: 17px; line-height: 1.65; font-weight: 500; }
.pv2-specs { display: grid; grid-template-columns: repeat(2, 1fr); border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; overflow: hidden; margin-bottom: 44px !important; }
.pv2-specs li { padding: 22px 12px; text-align: center; border-right: 1px solid #EEF2F3; border-bottom: 1px solid #EEF2F3; }
.pv2-specs b { display: block; font-size: 24px; font-weight: 800; color: var(--hv2-teal); margin-bottom: 4px; }
.pv2-specs span { font-size: 15px; font-weight: 500; }
.pv2-label { width: 100%; max-width: 904px; margin: 0 auto; border-radius: 20px; background: #fff; }
@media (min-width: 900px) { .pv2-ingcards { grid-template-columns: 1fr 1fr; gap: 30px; } .pv2-specs { grid-template-columns: repeat(4, 1fr); } .pv2-specs li { border-bottom: 0; } .pv2-specs li:last-child { border-right: 0; } }

/* ---------- how to use ---------- */
.pv2-usesteps { display: grid; grid-template-columns: 1fr; gap: 24px; }
.pv2-usesteps li { padding: 32px 28px; border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; text-align: center; }
.pv2-usesteps b { display: grid; place-items: center; width: 56px; height: 56px; margin: 0 auto 18px; border-radius: 50%; background: var(--hv2-teal); color: #fff; font-size: 24px; font-weight: 800; }
.pv2-usesteps h3 { font-size: 22px; margin-bottom: 10px; }
.pv2-usesteps p { font-size: 16px; line-height: 1.6; font-weight: 500; }
@media (min-width: 900px) { .pv2-usesteps { grid-template-columns: repeat(3, 1fr); gap: 30px; } }

/* ---------- timeline ---------- */
.pv2-timeline__row { display: grid; grid-template-columns: 1fr; gap: 36px; align-items: start; }
.pv2-timeline__row > img { width: 100%; max-height: 560px; object-fit: cover; border-radius: 20px; }
.pv2-stages li { position: relative; padding: 0 0 36px 62px; }
.pv2-stages li:not(:last-child)::after { content: ""; position: absolute; left: 19px; top: 40px; bottom: 0; width: 2px; background: var(--hv2-teal); }
.pv2-stages b { position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--hv2-teal); color: #fff; font-size: 18px; font-weight: 800; display: grid; place-items: center; }
.pv2-stages small { display: block; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--hv2-teal); margin-bottom: 6px; }
.pv2-stages h3 { font-size: 22px; font-weight: 800; margin-bottom: 12px; }
.pv2-stages ul li { padding: 0 0 8px 24px; position: relative; font-size: 16px; line-height: 1.5; font-weight: 500; }
.pv2-stages ul li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--hv2-teal); font-weight: 700; }
.pv2-stages ul li::after { display: none; }
.pv2-timeline__note { max-width: 760px; margin: 24px auto 0 !important; text-align: center; font-size: 17px; line-height: 1.6; font-weight: 600; color: var(--hv2-ink); }
@media (min-width: 900px) { .pv2-timeline__row { grid-template-columns: 440px 1fr; gap: 56px; } }

/* ---------- comparison ---------- */
.pv2-table { width: 100%; max-width: 960px; margin: 0 auto; border-collapse: separate; border-spacing: 0; border: 1px solid #E5E5E5; border-radius: 16px; overflow: hidden; background: #fff; font-family: var(--hv2-font); }
.pv2-table th, .pv2-table td { padding: 22px 24px; text-align: left; vertical-align: middle; font-size: 16px; line-height: 1.4; border-top: 1px solid #EEF2F3; }
.pv2-table thead th { background: var(--hv2-ink); color: #fff; font-weight: 700; font-size: 17px; border-top: 0; }
.pv2-table thead th.is-mp { background: var(--hv2-teal); }
.pv2-table tbody th { font-weight: 700; color: var(--hv2-ink); width: 27%; }
.pv2-table tbody td { font-weight: 500; color: var(--hv2-body); }
.pv2-table tbody td.is-mp { background: var(--hv2-teal-wash); color: var(--hv2-ink); font-weight: 600; }
.pv2-table td i { font-style: normal; font-weight: 700; margin-right: 8px; color: #D94040; }
.pv2-table td.is-mp i { color: #1BAD23; }
@media (max-width: 700px) { .pv2-table th, .pv2-table td { padding: 14px 12px; font-size: 14px; } .pv2-table tbody th { width: 30%; } }

/* ---------- product details (collapsible catalog description) ---------- */
.pv2-details { padding: 40px 0; }
.pv2-desc { border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; }
.pv2-desc summary { padding: 20px 26px; font-size: 20px; font-weight: 800; color: var(--hv2-ink); cursor: pointer; list-style: none; position: relative; }
.pv2-desc summary::-webkit-details-marker { display: none; }
.pv2-desc summary::after { content: "+"; position: absolute; right: 24px; top: 16px; font-size: 26px; color: var(--hv2-teal); font-weight: 600; }
.pv2-desc[open] summary::after { content: "\2212"; }
.pv2-desc__body { padding: 0 26px 28px; font-size: 16px; line-height: 1.7; color: var(--hv2-body); }
.pv2-desc__body p { margin-bottom: 1em; }
.pv2-more a { color: var(--hv2-teal); font-weight: 700; }

/* ---------- reviews (old markup) ---------- */
.pv2-reviews .customer-reviews-section { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }
.pv2-reviews .customer-reviews-section > h3 { display: none; }
.pv2-reviews .customer-reviews-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 22px; margin: 0 0 32px !important; padding: 18px 24px !important; border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; font-family: var(--hv2-font); }
.pv2-reviews .customer-reviews-summary-score { font-size: 22px !important; font-weight: 800 !important; color: var(--hv2-ink) !important; margin: 0 !important; }
.pv2-reviews .rating-star .fa-star { color: #d9d9d9; } .pv2-reviews .rating-star .fa-star.checked { color: var(--hv2-star); }
.pv2-reviews .customer-reviews-summary .btn { height: 46px; padding: 0 22px; border-radius: 8px; background: var(--hv2-teal) !important; border: 0 !important; color: #fff !important; font-family: var(--hv2-font); font-weight: 700; display: inline-flex; align-items: center; }
.pv2-reviews #reviews-list { display: grid; grid-template-columns: 1fr; gap: 24px; }
.pv2-reviews .review-item { margin: 0 !important; padding: 28px 30px !important; border: 1px solid #E5E5E5 !important; border-radius: 16px; background: #fff; font-family: var(--hv2-font); }
.pv2-reviews .review-item-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.pv2-reviews .verified-purchase-badge { font-size: 13px; font-weight: 600; color: #1BAD23; }
.pv2-reviews .review-item-title { font-size: 19px; font-weight: 700; color: var(--hv2-ink); margin: 0 0 10px; }
.pv2-reviews .review-item-text { font-size: 16px; line-height: 1.65; color: var(--hv2-body); margin: 0 0 14px; }
.pv2-reviews .review-item-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: var(--hv2-muted); }
.pv2-reviews .review-item-name { font-weight: 700; color: var(--hv2-ink); font-size: 15px; }
.pv2-reviews .review-item-photos { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.pv2-reviews .review-item-photos img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; }
.pv2-reviews #load-more-reviews-btn { display: block; margin: 28px auto 0; height: 46px; padding: 0 26px; border-radius: 8px; border: 1.5px solid var(--hv2-teal); background: #fff; color: var(--hv2-teal); font-weight: 700; font-family: var(--hv2-font); }
@media (min-width: 900px) { .pv2-reviews #reviews-list { grid-template-columns: repeat(3, 1fr); } }

/* ---------- FAQ ---------- */
.pv2-accordion { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.pv2-accordion details { border: 1px solid #E5E5E5; border-radius: 12px; background: #fff; }
.pv2-accordion details[open] { border-color: var(--hv2-teal); }
.pv2-accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; font-size: 18px; font-weight: 700; color: var(--hv2-ink); cursor: pointer; list-style: none; }
.pv2-accordion summary::-webkit-details-marker { display: none; }
.pv2-accordion summary i { font-style: normal; font-size: 24px; font-weight: 600; color: var(--hv2-teal); }
.pv2-accordion details[open] summary i { transform: rotate(45deg); }
.pv2-accordion details > div { padding: 0 24px 22px; font-size: 16px; line-height: 1.65; font-weight: 500; color: var(--hv2-body); }
.pv2-accordion details > div p { margin-bottom: 10px; }

/* ---------- pairs well with (related products, drawn by product-v2.js) ---------- */
.pv2-pairs__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pv2-pairs__grid .sv2-card { min-height: 0; }
.pv2-pairs__grid .sv2-card .hv2-btn { width: 100%; height: 50px; border-radius: 9px; margin-top: auto; }
@media (min-width: 900px) { .pv2-pairs__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- final CTA ---------- */
.pv2-cta { background: var(--hv2-ink) !important; color: #fff; text-align: center; padding: 72px 0; }
.pv2-cta h2 { color: #fff; margin-bottom: 14px; }
.pv2-cta p { font-size: 18px; color: #D9D9D9; margin-bottom: 28px; font-weight: 500; }
.pv2-note { padding: 28px 20px; margin: 0 auto !important; }

/* =====================================================================
   Hero to Steven's "Product - MasterPeace" frames (desktop 792:15951, mobile 792:16763), 13 Oct 2026.
   Grid: gallery | buy box, the stories strip under the gallery (desktop) or after the buy box (phones).
   ===================================================================== */
section.pv2-hero { padding: 34px 0 64px; }
.pv2-hero__grid { grid-template-areas: "gal" "buy" "sto"; }
.pv2-hero__grid > .pv2-gallery { grid-area: gal; }
.pv2-hero__grid > .pv2-buy { grid-area: buy; }
.pv2-hero__grid > .pv2-stories { grid-area: sto; }
@media (min-width: 960px) {
    .pv2-hero__grid { grid-template-columns: 540px 1fr; column-gap: 62px; row-gap: 16px; grid-template-areas: "gal buy" "sto buy"; grid-template-rows: auto 1fr; }
    .pv2-hero__grid > .pv2-buy { padding-top: 14px; }
    .pv2-hero__grid > .pv2-stories { align-self: start; }
}

/* gallery (designed products) */
.pv2-gallery--fig .main-swiper { position: relative; border-radius: 20px; overflow: hidden !important; background: #EDF7FA; }
.pv2-gallery--fig .main-swiper > .swiper-wrapper { border-radius: 20px; }
.pv2-gallery--fig .main-swiper > .swiper-wrapper .swiper-slide { height: 560px; padding: 0; background: #EDF7FA; }
.pv2-gallery--fig .main-swiper > .swiper-wrapper .swiper-slide img { width: 100%; height: 100%; max-height: none; max-width: none; object-fit: contain; border-radius: 0; }
.pv2-gal__arrow { position: absolute; z-index: 4; bottom: 16px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.08); color: #383838; font: 600 26px/1 var(--hv2-font); display: grid; place-items: center; padding: 0 0 4px; cursor: pointer; }
.pv2-gal__arrow--prev { left: 20px; }
.pv2-gal__arrow--next { right: 20px; }
.pv2-gal__arrow:hover { background: var(--hv2-teal-pale); }
.pv2-gal__dots { position: absolute; z-index: 4; left: 0 !important; right: 0; bottom: 32px !important; top: auto !important; width: 100% !important; display: flex; justify-content: center; gap: 8px; }
.pv2-gal__dots .swiper-pagination-bullet { width: 8px; height: 8px; margin: 0 !important; border-radius: 4px; background: #3FA7C2; opacity: .35; transition: width .2s ease, opacity .2s ease; }
.pv2-gal__dots .swiper-pagination-bullet-active { width: 22px; opacity: 1; }
.pv2-gallery--fig .pv2-gallery__badge { top: 20px; left: 20px; }
.pv2-gallery--fig .thumbnail-swiper { margin: 30px 0 0 !important; overflow: visible !important; }
.pv2-gallery--fig .thumbnail-swiper .swiper-wrapper { justify-content: space-between; gap: 0; }
.pv2-gallery--fig .thumbnail-swiper .swiper-slide { width: 98px !important; height: 98px !important; margin: 0 !important; padding: 0 !important; border: 1px solid #E5E5E5; border-radius: 12px; background: #F2F2F2; position: relative; }
.pv2-gallery--fig .thumbnail-swiper .swiper-slide img { width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; border-radius: 11px; }
.pv2-gallery--fig .thumbnail-swiper .swiper-slide:first-child img { object-fit: contain; padding: 3px 0; }
.pv2-gallery--fig .thumbnail-swiper .swiper-slide:nth-child(4) { background: #fff; }
.pv2-gallery--fig .thumbnail-swiper .swiper-slide:nth-child(4) img { object-fit: cover; object-position: 30% 50%; }
.pv2-gallery--fig .thumbnail-swiper .pv2-thumb--text img { opacity: 0; }
.pv2-gallery--fig .thumbnail-swiper .pv2-thumb--text span { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; font: 600 12px/16px var(--hv2-font); color: #4C4C4C; pointer-events: none; }
.pv2-gallery--fig .thumbnail-swiper .swiper-slide-thumb-active { border: 2px solid var(--hv2-teal); background: rgba(63,167,194,.12); }

/* 'Your health. Your stories.' */
.pv2-stories { border-radius: 20px; background: rgba(63,167,194,.08); padding: 28px 0 24px; min-width: 0; }
.pv2-stories__title { margin: 0 0 20px !important; text-align: center; font: 600 20px/24px var(--hv2-font) !important; letter-spacing: .02em; text-transform: uppercase; color: #383838 !important; }
.pv2-stories__track { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 24px; scroll-padding: 0 24px; scrollbar-width: none; }
.pv2-stories__track::-webkit-scrollbar { display: none; }
.pv2-story { position: relative; flex: 0 0 156px; height: 208px; border: 0; padding: 0; border-radius: 12px; overflow: hidden; cursor: pointer; scroll-snap-align: start; background: linear-gradient(160deg, #3FA7C2, #1d6f86); color: #fff; font-family: var(--hv2-font); }
.pv2-story img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pv2-story::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.55)); }
.pv2-story__initial { position: absolute; left: 0; right: 0; top: 30px; text-align: center; font-size: 46px; font-weight: 700; opacity: .9; }
.pv2-story__play { position: absolute; z-index: 1; left: 50%; top: 82px; width: 44px; height: 44px; margin-left: -22px; border-radius: 50%; border: 2.5px solid #fff; background: rgba(255,255,255,.18); }
.pv2-story__play::after { content: ""; position: absolute; left: 15px; top: 11px; border-style: solid; border-width: 8px 0 8px 13px; border-color: transparent transparent transparent #fff; }
.pv2-story__name { position: absolute; z-index: 1; left: 8px; right: 8px; top: 174px; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 13px; font-weight: 600; line-height: 20px; white-space: nowrap; overflow: hidden; }
.pv2-story__name i { flex: none; width: 14px; height: 14px; border-radius: 50%; background: var(--hv2-teal); font-style: normal; font-size: 9px; line-height: 14px; text-align: center; }
.pv2-stories__dots { display: flex; justify-content: center; gap: 8px; margin-top: 20px; min-height: 10px; }
.pv2-stories__dots i { width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid #383838; }
.pv2-stories__dots i.is-on { background: #383838; }
.pv2-vmodal { position: fixed; inset: 0; z-index: 100000; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(0,0,0,.75); }
.pv2-vmodal.is-open { display: flex; }
.pv2-vmodal__box { position: relative; width: min(960px, 100%); }
.pv2-vmodal__frame { position: relative; padding-top: 56.25%; background: #000; border-radius: 12px; overflow: hidden; }
.pv2-vmodal__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pv2-vmodal__close { position: absolute; top: -44px; right: 0; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; }

/* buy box to the frame */
.pv2-buy .pv2-pill { height: 37px; padding: 0 16px 0 11px; gap: 7px; border: 1px solid #3FA7C2; border-radius: 17.5px; background: rgba(63,167,194,.12); color: #383838; font-size: 16px; font-weight: 600; letter-spacing: 0; margin-bottom: 14px; }
.pv2-buy .pv2-pill svg { color: #3FA7C2; }
.pv2-buy .pv2-sold { margin-bottom: 22px !important; gap: 9px; }
.pv2-buy .pv2-sold svg { width: 28px; height: 28px; }
.pv2-title { font-size: 55px; line-height: 65px; margin-bottom: 10px; }
.pv2-buy .pv2-short { font-size: 18px; line-height: 28px; font-weight: 500; color: #4C4C4C; max-width: 520px; margin: 0 0 24px; }
.pv2-buy .pv2-short b { font-weight: 700; color: #383838; }
.pv2-buy .hv2-rating { margin: 0 0 24px; width: 318px; padding: 0 20px; gap: 8px; text-decoration: none !important; }
.pv2-buy .hv2-rating__g--verified svg { display: block; }
.pv2-buy .hv2-rating__top b { font-weight: 600; }
.pv2-buy .hv2-rating__sub { font-size: 18px; }
.pv2-points { margin: 0 0 24px !important; display: flex; flex-direction: column; gap: 12px; }
.pv2-points li { margin: 0; padding-left: 34px; font-size: 16px; line-height: 20px; font-weight: 500; color: #383838; }
.pv2-points li b { font-weight: 700; }
.pv2-points li::before { top: -1px; }
.pv2-buy .purchase-options { display: none !important; }
.pv2-plans { display: flex; flex-direction: column; gap: 12px; max-width: 460px; margin: 0 0 12px; }
.pv2-plan { position: relative; display: block; margin: 0; border: 1px solid #C5C5C5; border-radius: 12px; background: #fff; cursor: pointer; overflow: hidden; }
.pv2-plan__input { position: absolute; opacity: 0; pointer-events: none; }
.pv2-plan.is-selected { border: 2px solid #3FA7C2; background: #F0FAFC; }
.pv2-plan__banner { display: flex; align-items: center; justify-content: center; gap: 6px; height: 25px; background: #1CAE23; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.pv2-plan__body { display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 0 18px 0 13px; }
.pv2-plan--sub .pv2-plan__body { min-height: 73px; padding-left: 16px; }
.pv2-plan__radio { flex: none; width: 28px; height: 28px; border-radius: 50%; border: 2px solid #C5C5C5; background: #fff; position: relative; }
.pv2-plan--sub .pv2-plan__radio { width: 24px; height: 24px; }
.pv2-plan.is-selected .pv2-plan__radio { border-color: #3FA7C2; }
.pv2-plan.is-selected .pv2-plan__radio::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: #3FA7C2; }
.pv2-plan__text { flex: 1; display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pv2-plan__title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 16px; font-weight: 700; color: #383838; line-height: 20px; }
.pv2-plan__chip { display: inline-flex; align-items: center; height: 18px; padding: 0 8px; border-radius: 10px; background: #E0F5E3; color: #12851A; font-size: 10px; font-weight: 700; font-style: normal; text-transform: uppercase; letter-spacing: .03em; }
.pv2-plan__text small { font-size: 13px; font-weight: 500; color: #737373; line-height: 16px; }
.pv2-plan__price { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; text-align: right; white-space: nowrap; font-size: 16px; font-weight: 600; color: #383838; }
.pv2-plan__price b { font-size: 18px; font-weight: 700; }
.pv2-plan__price s, .pv2-plan__price del { font-size: 13px; font-weight: 500; color: #999; }
.pv2-plan--one .pv2-plan__price { flex-direction: row; gap: 6px; align-items: baseline; }
.pv2-buy .quantity_cart_main { max-width: 460px; gap: 11px; flex-wrap: nowrap; margin: 0 0 24px; }
.pv2-buy .quantity { width: 166px; height: 57px; border: 1px solid #4C4C4C; border-radius: 12px; }
.pv2-buy .quantity button { font-size: 26px; font-weight: 500; }
.pv2-buy .quantity input { width: 56px; flex: none; border-color: #4C4C4C; font-size: 24px; font-weight: 600; }
.pv2-buy .cart_btn { flex: 1; min-width: 0; }
.pv2-buy .cart_btn a.add_to_cart { height: 57px; gap: 10px; font-size: 16px; font-weight: 600; letter-spacing: .02em; }
.pv2-buy .cart_btn a.add_to_cart svg { flex: none; }
.pv2-trust { gap: 8px 20px; margin: 0 0 24px !important; font-size: 14px; font-weight: 600; color: #4C4C4C; }
.pv2-trust li { padding-left: 12px; }
.pv2-trust li::before { top: 6px; width: 6px; height: 6px; }
.pv2-buy .pv2-benefits { flex-wrap: nowrap; justify-content: space-between !important; gap: 0; max-width: 503px; margin: 0 !important; }
.pv2-buy .pv2-benefits li { gap: 15px; font-family: Poppins, var(--hv2-font); font-size: 14px; line-height: 14px; letter-spacing: 0; white-space: nowrap; }

/* phones: Steven's Product - MasterPeace (Mobile) */
@media (max-width: 959px) {
    section.pv2-hero { padding: 27px 0 40px; }
    .pv2-hero__grid { row-gap: 32px; }
    .pv2-gallery--fig .main-swiper > .swiper-wrapper .swiper-slide { height: auto; aspect-ratio: 390 / 420; }
    .pv2-gallery--fig .main-swiper, .pv2-gallery--fig .main-swiper > .swiper-wrapper { border-radius: 14px; }
    .pv2-gal__arrow { width: 32px; height: 32px; font-size: 19px; bottom: 10px; }
    .pv2-gal__arrow--prev { left: 12px; }
    .pv2-gal__arrow--next { right: 11px; }
    .pv2-gal__dots { bottom: 24px !important; gap: 6px; }
    .pv2-gal__dots .swiper-pagination-bullet { width: 6px; height: 6px; }
    .pv2-gal__dots .swiper-pagination-bullet-active { width: 16px; }
    .pv2-gallery--fig .pv2-gallery__badge { top: 14px; left: 14px; height: 21px; font-size: 9px; }
    .pv2-gallery--fig .thumbnail-swiper { margin-top: 13px !important; }
    .pv2-gallery--fig .thumbnail-swiper .swiper-slide { width: 66px !important; height: 66px !important; border-radius: 10px; }
    .pv2-gallery--fig .thumbnail-swiper .swiper-slide img { border-radius: 9px; }
    .pv2-gallery--fig .thumbnail-swiper .pv2-thumb--text span { font-size: 10px; line-height: 13px; }
    .pv2-buy, .pv2-buy.ipad_center { text-align: center !important; }
    .pv2-buy .pv2-pill { display: inline-flex; margin: 0 auto 12px; }
    .pv2-buy .pv2-sold { justify-content: center !important; margin: 0 0 24px !important; }
    .pv2-buy .pv2-sold svg { width: 22px; height: 22px; }
    .pv2-title { font-size: 44px; line-height: 52px; margin-bottom: 14px; text-align: center; }
    .pv2-buy .pv2-short { text-align: center; margin: 0 auto 32px; }
    .pv2-buy .hv2-rating { margin: 0 auto 32px; height: 72px; }
    .pv2-buy .pv2-member { text-align: center !important; }
    .pv2-points { gap: 16px; text-align: left; margin-bottom: 32px !important; }
    .pv2-points li { font-size: 15px; line-height: 21px; padding-left: 30px; }
    .pv2-points li::before { width: 20px; height: 20px; font-size: 11px; top: 0; }
    .pv2-plans { max-width: none; gap: 16px; margin-bottom: 16px; text-align: left; }
    .pv2-plan--one .pv2-plan__body { padding-left: 16px; }
    .pv2-plan--one .pv2-plan__radio { width: 24px; height: 24px; }
    .pv2-plan--one .pv2-plan__price { font-size: 18px; font-weight: 700; }
    .pv2-buy .quantity_cart_main { max-width: none; flex-wrap: wrap; gap: 16px; margin-bottom: 32px; }
    .pv2-buy .quantity { width: 100%; height: 54px; border-color: #C5C5C5; border-radius: 8px; }
    .pv2-buy .quantity button { flex: 0 0 60px; }
    .pv2-buy .quantity input { flex: 1; width: auto; border-color: #C5C5C5; font-size: 20px; }
    .pv2-buy .cart_btn { flex: 1 1 100%; }
    .pv2-buy .cart_btn a.add_to_cart { height: 56px; border-radius: 9px; }
    .pv2-trust { justify-content: center; gap: 10px 14px; font-size: 13px; margin-bottom: 32px !important; }
    .pv2-buy .pv2-benefits { max-width: none; }
    .pv2-buy .pv2-benefits li { font-size: 10.85px; line-height: 11px; gap: 12px; }
    .pv2-buy .pv2-benefits i { width: 50px; height: 50px; }
    .pv2-buy .pv2-benefits svg { width: 25px; height: 25px; }
    .pv2-stories { border-radius: 18px; padding: 24px 0 20px; }
    .pv2-stories__title { font-size: 16px !important; line-height: 20px !important; margin-bottom: 16px !important; }
    .pv2-stories__track { padding: 0 16px; scroll-padding: 0 16px; }
    .pv2-story { flex-basis: 150px; height: 200px; }
    .pv2-story__name { top: 171px; }
    .pv2-stories__dots { margin-top: 16px; }
    .pv2-stories__dots i { width: 9px; height: 9px; }
}
/* the store's old inline style puts a beige panel behind quantity + button; the frame has none */
.pv2-buy .quantity_cart_main { background: none !important; padding: 0 !important; width: auto !important; border-radius: 0 !important; }
/* before the slider script runs (and in the static preview) show only the first slide */
.pv2-gallery--fig .main-swiper:not(.swiper-initialized) > .swiper-wrapper { display: block; }
.pv2-gallery--fig .main-swiper:not(.swiper-initialized) > .swiper-wrapper > .swiper-slide:not(:first-child) { display: none; }

/* =====================================================================
   Lower half to Steven's Product - MasterPeace frame (13 Oct 2026):
   88px section padding, review cards, accordion, pairs cards, final CTA, disclaimer band.
   ===================================================================== */
section.pv2-reviews--fig, section.pv2-faq, section.pv2-pairs { padding: 88px 0 !important; }
section.pv2-reviews--fig { background: #fff !important; }
section[class^="pv2-"] .hv2-head h2 span, .hv2-proof .hv2-head h2 span { color: var(--hv2-teal); }

/* reviews: three cards; the summary bar, dates and Load More live behind 'See all reviews' */
.pv2-reviews--fig .hv2-head { margin-bottom: 44px; }
.pv2-reviews--fig .hv2-head h2 { font-size: 40px; line-height: 52px; max-width: none; white-space: nowrap; }
.pv2-reviews--fig .customer-reviews-section { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.pv2-reviews--fig .customer-reviews-section > h3 { display: none; }
.pv2-reviews--fig .customer-reviews-summary { display: none !important; }
.pv2-reviews--fig.is-all .customer-reviews-summary { display: flex !important; margin-bottom: 30px; }
.pv2-reviews--fig #reviews-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.pv2-reviews--fig:not(.is-all) #reviews-list .review-item:nth-child(n+4) { display: none; }
.pv2-reviews--fig:not(.is-all) #load-more-reviews-btn { display: none !important; }
.pv2-reviews--fig.is-all #load-more-reviews-btn { display: block; margin: 30px auto 0; }
.pv2-reviews--fig .review-item { display: flex; flex-direction: column; gap: 14px; min-height: 265px; margin: 0 !important; padding: 33px !important; border: 1px solid #E5E5E5 !important; border-radius: 16px !important; background: #fff !important; box-shadow: none !important; }
.pv2-reviews--fig .review-item-header { display: block; margin: 0 !important; }
.pv2-reviews--fig .review-item-header .rating-star .fa-star { font-size: 12px; margin-right: 2px; color: #d9d9d9; }
.pv2-reviews--fig .review-item-header .rating-star .fa-star.checked { color: #ECC63D; }
.pv2-reviews--fig .review-item-title { margin: 0 !important; font-size: 19px !important; line-height: 23px !important; font-weight: 700 !important; color: #383838 !important; }
.pv2-reviews--fig .review-item-text { flex: 1; margin: 0 !important; font-size: 16px !important; line-height: 26px !important; font-weight: 500 !important; color: #4C4C4C !important; }
.pv2-reviews--fig .review-item-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 !important; }
.pv2-reviews--fig .review-item-name { font-size: 15px !important; font-weight: 700 !important; color: #383838 !important; }
.pv2-reviews--fig .review-item-date, .pv2-reviews--fig .review-item-variation { display: none; }
.pv2-reviews--fig.is-all .review-item-date { display: inline; font-size: 13px; color: #737373; }
.pv2-reviews--fig .verified-purchase-badge { padding: 0 !important; border: 0 !important; background: none !important; color: #1BAD23 !important; font-size: 13px !important; font-weight: 600 !important; }
.pv2-reviews--fig .verified-purchase-badge::before { content: "\2713\00a0"; }
.pv2-allreviews { margin: 44px 0 0 !important; text-align: center; }
.pv2-allreviews__link { color: var(--hv2-teal) !important; font-size: 16px; font-weight: 600; text-decoration: none !important; }
.pv2-allreviews__link:hover { text-decoration: underline !important; }

/* FAQ accordion as drawn */
section.pv2-faq .hv2-head { margin-bottom: 44px; }
section.pv2-faq .hv2-head h2 { font-size: 40px; line-height: 52px; }
.pv2-faq .pv2-accordion { max-width: 820px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
.pv2-faq .pv2-accordion details { margin: 0 !important; border: 1px solid #E5E5E5; border-radius: 12px; background: #fff; }
.pv2-faq .pv2-accordion details[open] { border-color: #3FA7C2; }
.pv2-faq .pv2-accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 69px; padding: 0 24px; font-size: 18px; font-weight: 700; color: #383838; cursor: pointer; list-style: none; }
.pv2-faq .pv2-accordion summary::-webkit-details-marker { display: none; }
.pv2-faq .pv2-accordion summary i { font-style: normal; font-size: 24px; font-weight: 600; color: #3FA7C2; line-height: 1; }
.pv2-faq .pv2-accordion details[open] summary i { font-size: 0; }
.pv2-faq .pv2-accordion details[open] summary i::after { content: "\2212"; font-size: 24px; }
.pv2-faq .pv2-accordion details > div { padding: 0 24px 21px; margin-top: -9px; }
.pv2-faq .pv2-accordion details > div p { margin: 0 0 8px; font-size: 16px; line-height: 26px; font-weight: 500; color: #4C4C4C; }
.pv2-faq .pv2-accordion details > div p:last-child { margin-bottom: 0; }
.pv2-faq .pv2-accordion details > div a { color: var(--hv2-teal); font-weight: 600; }

/* pairs: shop cards (262 x 537), Add to Cart 50px */
section.pv2-pairs .hv2-head { margin-bottom: 44px; }
section.pv2-pairs .hv2-head h2 { font-size: 40px; line-height: 52px; }
.pv2-pairs .pv2-pairs__grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0 !important; }
.pv2-pairs .pv2-pair { width: auto !important; max-width: none !important; margin: 0 !important; min-height: 537px; padding: 17px !important; border: 1px solid #E5E5E5 !important; border-radius: 16px !important; box-shadow: none !important; display: flex; flex-direction: column; background: #fff; }
.pv2-pairs .pv2-pair .sv2-card__img { height: 250px; border-radius: 12px; background: #EEF7F9; display: flex; align-items: center; justify-content: center; position: relative; }
.pv2-pairs .pv2-pair .sv2-card__img img { max-height: 226px; width: auto; max-width: 92%; object-fit: contain; }
.pv2-pairs .pv2-pair .sv2-card__img--duo img { max-height: 190px; max-width: 46%; }
.pv2-pairs .pv2-pair .sv2-badge { position: absolute; top: 12px; left: 12px; }
.pv2-pairs .pv2-pair .sv2-card__body { flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 14px; }
.pv2-pairs .pv2-pair .sv2-card__sold { font-size: 13px; font-weight: 600; color: #4C4C4C; margin-bottom: 8px; }
.pv2-pairs .pv2-pair .sv2-card__title { margin: 0 0 8px !important; font-size: 20px !important; line-height: 26px !important; font-weight: 700 !important; }
.pv2-pairs .pv2-pair .sv2-card__title a { color: #383838 !important; }
.pv2-pairs .pv2-pair .sv2-card__desc { flex: 1; margin: 0 !important; font-size: 15px !important; line-height: 22px !important; font-weight: 500; color: #4C4C4C; }
.pv2-pairs .pv2-pair .sv2-card__price { margin: 14px 0 !important; display: flex; align-items: baseline; justify-content: center; gap: 8px; font-size: 24px; line-height: 29px; font-weight: 700; color: #383838; }
.pv2-pairs .pv2-pair .sv2-card__price del, .pv2-pairs .pv2-pair .sv2-card__was { font-size: 15px; font-weight: 500; color: #4C4C4C; }
.pv2-pairs .pv2-pair .pv2-pair-add { width: 100%; height: 50px; border-radius: 9px; justify-content: center; font-size: 16px; font-weight: 600; }
.pv2-pairs .pv2-pair .pv2-pair-add.is-busy { opacity: .6; pointer-events: none; }
@media (max-width: 1023px) { .pv2-pairs .pv2-pairs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* final CTA as drawn: dark band, 18px grey line, 283 x 57 button */
section.pv2-cta { padding: 88px 0 !important; background: #383838 !important; text-align: center; }
section.pv2-cta h2 { color: #fff !important; font-size: 40px; line-height: 52px; margin: 0 0 20px; }
section.pv2-cta p { color: #D9D9D9 !important; font-size: 18px; line-height: 22px; font-weight: 500; margin: 0 0 20px; }
section.pv2-cta .hv2-btn { width: 283px; height: 57px; border-radius: 8px; justify-content: center; font-size: 16px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; }

/* disclaimer band (104px) + the lab-analysis link that used to be a blue bar */
.pv2-labnote { max-width: 1110px; margin: 32px auto 0; padding: 0 20px; text-align: center; font-size: 13px; line-height: 20px; font-weight: 600; }
.pv2-labnote a { color: var(--hv2-teal); text-decoration: underline; }
.pv2-note { max-width: 1110px; margin: 12px auto 32px !important; padding: 0 20px; text-align: center; font-size: 13px !important; line-height: 20px !important; font-weight: 500; color: #4C4C4C; }

@media (max-width: 899px) {
    section.pv2-reviews--fig, section.pv2-faq, section.pv2-pairs { padding: 56px 0 !important; }
    .pv2-reviews--fig .hv2-head h2 { white-space: normal; font-size: 30px; line-height: 38px; }
    .pv2-reviews--fig #reviews-list { grid-template-columns: 1fr; gap: 16px; }
    .pv2-reviews--fig .review-item { min-height: 0; padding: 24px !important; }
    section.pv2-faq .hv2-head h2, section.pv2-pairs .hv2-head h2, section.pv2-cta h2 { font-size: 30px; line-height: 38px; }
    .pv2-faq .pv2-accordion summary { min-height: 60px; padding: 0 18px; font-size: 16px; }
    .pv2-faq .pv2-accordion details > div { padding: 0 18px 18px; }
    .pv2-pairs .pv2-pairs__grid { gap: 12px; }
    .pv2-pairs .pv2-pair { min-height: 0; padding: 13px !important; }
    .pv2-pairs .pv2-pair .sv2-card__img { height: 170px; }
    .pv2-pairs .pv2-pair .sv2-card__img img { max-height: 150px; }
    .pv2-pairs .pv2-pair .sv2-card__img--duo img { max-height: 120px; }
    .pv2-pairs .pv2-pair .sv2-card__title { font-size: 16px !important; line-height: 21px !important; }
    .pv2-pairs .pv2-pair .sv2-card__desc { font-size: 13px !important; line-height: 19px !important; }
    .pv2-pairs .pv2-pair .sv2-card__price { font-size: 20px; }
    .pv2-pairs .pv2-pair .pv2-pair-add { height: 41px; font-size: 14px; border-radius: 8px; }
    section.pv2-cta { padding: 64px 0 !important; }
    section.pv2-cta .hv2-btn { width: 100%; max-width: 390px; }
}

/* =====================================================================
   Story sections (product + How It Works pages) to Steven's frames, 13 Oct 2026.
   Body copy is #4C4C4C in every frame (the old stylesheet made it navy).
   ===================================================================== */
section[class^="pv2-"] p, section.hv2-proof .hv2-review__text { color: #4C4C4C; }
section.pv2-cta p { color: #D9D9D9; }

/* How MasterPeace works: frame 'How MasterPeace Works' (1440 x 1000) */
section.pv2-how { padding: 54px 0 40px !important; }
.pv2-how .hv2-head { margin-bottom: 0; }
.pv2-how .hv2-head .hv2-pill { height: 40px; padding: 0 18px 0 14px; gap: 8px; font-size: 16px; text-transform: none; letter-spacing: 0; margin-bottom: 17px; }
.pv2-how .hv2-head .hv2-pill svg { width: 21px; height: 21px; }
.pv2-how .hv2-head h2 { font-size: 40px; line-height: 55px; margin-bottom: 20px; }
.pv2-how .hv2-head p { font-size: 18px; line-height: 35px; font-weight: 500; }
.pv2-how .hv2-ingredients { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 72px auto 0; max-width: 1110px; position: relative; padding-bottom: 46px; border-bottom: 1px solid #4C4C4C; }
.pv2-how .hv2-ingredients::before { content: ""; position: absolute; left: 50%; top: 9px; height: 113px; border-left: 1px solid #4C4C4C; }
.pv2-how .hv2-ingredient { display: flex; align-items: flex-start; gap: 26px; padding: 0 20px 0 14px; text-align: left; }
.pv2-how .hv2-ingredient:last-child { padding-left: 64px; }
.pv2-how .hv2-ingredient img { flex: none; width: 105px; height: 105px; margin-top: 9px; border-radius: 50%; object-fit: cover; }
.pv2-how .hv2-ingredient h3 { margin: 0 0 13px; font-size: 24px; line-height: 22px; font-weight: 700; color: var(--hv2-teal); }
.pv2-how .hv2-ingredient p { margin: 0; font-size: 18px; line-height: 35px; font-weight: 500; }
.pv2-how .hv2-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 58px 0 0; padding: 0; }
.pv2-how .hv2-steps li { position: relative; text-align: center; padding: 0 30px; }
.pv2-how .hv2-steps li:not(:last-child)::after { content: ""; position: absolute; top: 50px; left: calc(50% + 80px); width: 125px; border-top: 1.5px solid #4C4C4C; }
.pv2-how .hv2-step__icon { position: relative; display: grid; place-items: center; width: 100px; height: 100px; margin: 0 auto 35px; border-radius: 50%; background: #FFF8F0; border: 2px solid #fff; color: var(--hv2-teal); }
.pv2-how .hv2-step__icon svg { width: 48px; height: 48px; }
.pv2-how .hv2-step__icon b { position: absolute; top: 0; right: -10px; width: 33px; height: 33px; border-radius: 50%; border: 2px solid #fff; background: #383838; color: #fff; font-size: 16px; font-weight: 600; line-height: 29px; display: block; text-align: center; }
.pv2-how .hv2-steps h3 { margin: 0 auto 10px; max-width: 230px; font-size: 20px; line-height: 24px; font-weight: 700; color: #383838; min-height: 48px; }
.pv2-how .hv2-steps p { margin: 0 auto; max-width: 230px; font-size: 16px; line-height: 31px; font-weight: 500; }
.pv2-how .hv2-steps + .hv2-center, .pv2-how .hv2-center { margin-top: 61px !important; }

/* shared section CTA button: 283 x 57, 'ADD TO CART' */
section[class^="pv2-"] .hv2-center .hv2-btn { width: 283px; height: 57px; border-radius: 8px; justify-content: center; font-size: 16px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; }

/* Powerful Proven Protection: frame 1440 x 870 */
section.pv2-protect { padding: 40px 0 88px !important; }
.pv2-protect .hv2-head { margin-bottom: 48px; max-width: 1110px; }
.pv2-protect .hv2-head .hv2-pill { margin-bottom: 14px; }
.pv2-protect .hv2-head h2 { font-size: 40px; line-height: 52px; margin-bottom: 14px; }
.pv2-protect .hv2-head p { max-width: 720px; margin: 0 auto; font-size: 18px; line-height: 30px; }
.pv2-protect .pv2-protect__cards { gap: 24px; }
.pv2-protect .pv2-protect__cards img { width: 100%; height: 410px; object-fit: contain; border-radius: 0; }
.pv2-protect .hv2-center { margin-top: 48px !important; }

@media (max-width: 899px) {
    section.pv2-how { padding: 48px 0 !important; }
    .pv2-how .hv2-ingredients { grid-template-columns: 1fr; gap: 28px; padding-bottom: 32px; margin-top: 36px; }
    .pv2-how .hv2-ingredients::before { display: none; }
    .pv2-how .hv2-ingredient, .pv2-how .hv2-ingredient:last-child { padding: 0; }
    .pv2-how .hv2-ingredient p { font-size: 16px; line-height: 26px; }
    .pv2-how .hv2-steps { grid-template-columns: 1fr; gap: 32px; margin-top: 40px; }
    .pv2-how .hv2-steps li::after { display: none; }
    .pv2-how .hv2-steps h3 { min-height: 0; }
    .pv2-how .hv2-center { margin-top: 40px !important; }
    section.pv2-protect { padding: 48px 0 !important; }
    .pv2-protect .pv2-protect__cards img { height: auto; }
}
/* fine-tune against the frame (render measured 13 Oct) */
section.pv2-how .hv2-head .hv2-pill { font-size: 16px; }
.pv2-how .hv2-ingredients { margin-top: 83px; }
.pv2-how .hv2-ingredient img { margin-top: -2px; }
.pv2-how .hv2-ingredients::before { top: -2px; }
.pv2-how .hv2-steps { margin-top: 47px; }
.pv2-how .hv2-steps h3 { line-height: 35px; min-height: 70px; margin-bottom: 7px; }
@media (max-width: 899px) { .pv2-how .hv2-ingredients { margin-top: 36px; } .pv2-how .hv2-steps h3 { line-height: 26px; min-height: 0; } }

/* What's happening / What's inside / How to use / Timeline / Compare: Steven's 88px rhythm (13 Oct 2026) */
section.pv2-inside, section.pv2-whatsinside, section.pv2-use, section.pv2-timeline { padding: 88px 0 !important; }
section.pv2-compare { padding: 24px 0 88px !important; }
section.pv2-inside .hv2-head, section.pv2-whatsinside .hv2-head, section.pv2-use .hv2-head, section.pv2-timeline .hv2-head, section.pv2-compare .hv2-head { margin-bottom: 44px; max-width: 1110px; }
section.pv2-timeline .hv2-head { margin-bottom: 48px; }
section[class^="pv2-"] .hv2-head .hv2-pill { height: 39px; margin-bottom: 14px; }
section.pv2-whatsinside .hv2-head h2, section.pv2-use .hv2-head h2, section.pv2-timeline .hv2-head h2, section.pv2-compare .hv2-head h2, section.pv2-inside .hv2-head h2 { font-size: 40px; line-height: 52px; margin-bottom: 14px; }
section.pv2-whatsinside .hv2-head p, section.pv2-timeline .hv2-head p, section.pv2-compare .hv2-head p { font-size: 18px; line-height: 30px; }

/* What's inside: cards hug their text, 33px padding; spec strip 101px; label 904 x 590 */
.pv2-whatsinside .pv2-ingcards { align-items: start; margin-bottom: 44px; gap: 30px; }
.pv2-whatsinside .pv2-ingcard { padding: 33px; }
.pv2-whatsinside .pv2-ingcard small { font-size: 13px; line-height: 16px; margin-bottom: 14px; }
.pv2-whatsinside .pv2-ingcard h3 { font-size: 28px; line-height: 34px; margin-bottom: 14px; }
.pv2-whatsinside .pv2-ingcard p { font-size: 17px; line-height: 28px; }
.pv2-whatsinside .pv2-specs { margin-bottom: 44px !important; }
.pv2-whatsinside .pv2-specs li { padding: 24px 12px 23px; }
.pv2-whatsinside .pv2-specs b { font-size: 24px; line-height: 29px; margin-bottom: 4px; }
.pv2-whatsinside .pv2-specs span { font-size: 15px; line-height: 18px; }
.pv2-whatsinside .pv2-label { max-width: 904px; }

/* How to use: 350 x 229 cards */
.pv2-use .pv2-usesteps li { padding: 33px 33px; }
.pv2-use .pv2-usesteps b { margin-bottom: 14px; }
.pv2-use .pv2-usesteps h3 { font-size: 22px; line-height: 27px; margin-bottom: 14px; }
.pv2-use .pv2-usesteps p { font-size: 16px; line-height: 26px; }

/* Timeline: 179px stages, ticks at 23px, note 17/27 dark */
.pv2-timeline .pv2-timeline__row { gap: 56px; }
.pv2-timeline .pv2-timeline__row > img { height: 560px; max-height: none; }
.pv2-timeline .pv2-stages { padding-top: 12px; }
.pv2-timeline .pv2-stages > li { padding: 0 0 24px 62px; }
.pv2-timeline .pv2-stages small { font-size: 13px; line-height: 16px; margin-bottom: 8px; }
.pv2-timeline .pv2-stages h3 { font-size: 22px; line-height: 27px; margin-bottom: 7px; }
.pv2-timeline .pv2-stages ul li { padding: 0 0 8px 23px; line-height: 24px; }
section.pv2-timeline .pv2-timeline__note { margin: 48px auto 0 !important; font-size: 17px; line-height: 27px; font-weight: 600; color: #383838; }
.pv2-timeline .hv2-center { margin-top: 48px !important; }
@media (min-width: 900px) { .pv2-timeline .pv2-timeline__row { grid-template-columns: 440px 1fr; } }

/* Compare: 960-wide table, columns 260 / 328 / 370, 22px cell padding */
.pv2-compare .pv2-table { width: 100%; max-width: 960px; margin: 0 auto; table-layout: fixed; }
.pv2-compare .pv2-table th:first-child { width: 260px; }
.pv2-compare .pv2-table thead th:nth-child(2) { width: 328px; }
.pv2-compare .pv2-table th, .pv2-compare .pv2-table td { padding: 22px 24px !important; line-height: 22px !important; vertical-align: middle; }
.pv2-compare .pv2-table thead th { font-size: 17px; }
.pv2-compare .hv2-center { margin-top: 44px !important; }
/* Ollie 13 Oct: every MasterPeace line on ONE line on desktop (no "cellular / level" wrap): wider table, MasterPeace column gets the room */
@media (min-width: 1000px) {
    .pv2-compare .pv2-table { max-width: 1100px; }
    .pv2-compare .pv2-table th:first-child { width: 240px; }
    .pv2-compare .pv2-table thead th:nth-child(2) { width: 340px; }
    .pv2-compare .pv2-table td { white-space: nowrap; }
}
@media (max-width: 899px) {
    section.pv2-inside, section.pv2-whatsinside, section.pv2-use, section.pv2-timeline { padding: 56px 0 !important; }
    section.pv2-compare { padding: 24px 0 56px !important; }
    section.pv2-whatsinside .hv2-head h2, section.pv2-use .hv2-head h2, section.pv2-timeline .hv2-head h2, section.pv2-compare .hv2-head h2, section.pv2-inside .hv2-head h2 { font-size: 30px; line-height: 38px; }
    .pv2-timeline .pv2-timeline__row > img { height: auto; }
    .pv2-compare .pv2-table th:first-child, .pv2-compare .pv2-table thead th:nth-child(2) { width: auto; }
    .pv2-compare .pv2-table th, .pv2-compare .pv2-table td { padding: 14px 12px !important; }
}
/* timeline note 30px under the stages, 48px band bottom; pairs cards: no stretching, price 14px under the copy */
section.pv2-timeline { padding-bottom: 48px !important; }
section.pv2-timeline .pv2-timeline__note { margin-top: 30px !important; }
.pv2-pairs .pv2-pair .sv2-card__body { flex: none; }
.pv2-pairs .pv2-pair .sv2-card__desc { flex: none; }
.pv2-pairs .pv2-pair .sv2-card__sold { line-height: 16px; }
.pv2-pairs .pv2-pair .sv2-card__title { line-height: 26px !important; }
.pv2-pairs .pv2-pair .sv2-card__price { line-height: 29px; height: 29px; }
@media (max-width: 899px) { section.pv2-timeline { padding-bottom: 56px !important; } }
/* hero rhythm: rating -> points 24, points -> purchase 24 (measured against the frame) */
.pv2-buy .hv2-rating { margin-bottom: 32px; }
.pv2-points { margin-bottom: 31px !important; }
/* product proof block starts 29px into its band (frame) */
section.hv2-proof.pv2-proof { padding-top: 29px !important; }
@media (max-width: 959px) { .pv2-buy .hv2-rating { margin-bottom: 32px; } .pv2-points { margin-bottom: 32px !important; } }
/* style.css forces .main-swiper .swiper-slide { height: max-content !important } and .img_view min-height 300 !important */
.pv2-gallery--fig .main-swiper > .swiper-wrapper > .swiper-slide { height: 560px !important; min-height: 0 !important; }
@media (max-width: 959px) { .pv2-gallery--fig .main-swiper > .swiper-wrapper > .swiper-slide { height: auto !important; aspect-ratio: 390 / 420; } }
/* the strip itself must not clip: Swiper moves it left by N x 540 and the visible slide sits outside its own box */
.pv2-gallery--fig .main-swiper > .swiper-wrapper { overflow: visible !important; background: none !important; border-radius: 0 !important; }
/* the designed slide and the lifestyle photo fill the frame; the wide/square ones stay whole */
.pv2-gallery--fig .main-swiper .swiper-slide img[src*="slide-1-"], .pv2-gallery--fig .main-swiper .swiper-slide img[src*="slide-2-"] { object-fit: cover !important; }

/* =====================================================================
   Phones: Steven's "Product - MasterPeace (Mobile)" frame (430 wide), 13 Oct 2026.
   ===================================================================== */
.pv2-label__link { display: block; text-align: center; text-decoration: none !important; }
.pv2-label__tap { display: none; }
@media (max-width: 899px) {
    /* shared header rhythm: pill 33, gap 12, heading 28/36, copy 15/23 */
    section[class^="pv2-"] .hv2-head { margin-bottom: 24px; }
    section[class^="pv2-"] .hv2-head .hv2-pill { height: 33px; font-size: 13px; margin-bottom: 12px; padding: 0 16px; }
    section.pv2-inside .hv2-head h2, section.pv2-protect .hv2-head h2, section.pv2-whatsinside .hv2-head h2, section.pv2-use .hv2-head h2, section.pv2-timeline .hv2-head h2, section.pv2-compare .hv2-head h2, section.pv2-reviews .hv2-head h2, section.pv2-faq .hv2-head h2, section.pv2-pairs .hv2-head h2 { font-size: 28px; line-height: 36px; margin-bottom: 12px; white-space: normal; }
    section.pv2-protect .hv2-head p, section.pv2-timeline .hv2-head p, section.pv2-compare .hv2-head p { font-size: 15px; line-height: 23px; }
    section.pv2-whatsinside .hv2-head p { font-size: 16px; line-height: 24px; }
    section[class^="pv2-"] .hv2-center .hv2-btn { width: 100%; max-width: 390px; height: 56px; border-radius: 9px; }

    /* product proof: one video on phones, as drawn */
    section.hv2-proof.pv2-proof { padding: 46px 0 18px !important; }
    .pv2-proof .hv2-head h2 { font-size: 32px; line-height: 47px; }
    .pv2-proof .hv2-videos .hv2-video:nth-child(2) { display: none; }

    /* What's actually happening */
    section.pv2-inside { padding: 56px 0 !important; }
    .pv2-inside .pv2-inside__row { gap: 24px; margin-bottom: 24px; }
    .pv2-inside .pv2-inside__img { max-width: 360px; margin: 0 auto; }
    .pv2-inside .pv2-toxins { gap: 24px; }
    .pv2-inside .pv2-toxin { padding: 17px; gap: 12px; border-radius: 14px; }
    .pv2-inside .pv2-toxin i { width: 32px; height: 32px; border: 0; background: #D43838; color: #fff; font-size: 16px; }
    .pv2-inside .pv2-toxin p { font-size: 15px; line-height: 23px; }
    .pv2-inside .pv2-effects h3 { font-size: 21px; line-height: 28px; text-align: center; margin-bottom: 14px; }
    .pv2-inside .pv2-effects li { font-size: 15px; line-height: 23px; margin-bottom: 14px; }

    /* How MasterPeace works: everything stacked and centred */
    section.pv2-how { padding: 21px 0 32px !important; }
    .pv2-how .hv2-head .hv2-pill { height: 40px; font-size: 16px; margin-bottom: 14px; }
    .pv2-how .hv2-head h2 { font-size: 32px; line-height: 47px; margin-bottom: 14px; }
    .pv2-how .hv2-ingredients { grid-template-columns: 1fr; gap: 41px; margin-top: 50px; padding-bottom: 0; border-bottom: 0; }
    .pv2-how .hv2-ingredient, .pv2-how .hv2-ingredient:last-child { flex-direction: column; align-items: center; text-align: center; gap: 0; padding: 0; }
    .pv2-how .hv2-ingredient img { margin: 0 0 27px; }
    .pv2-how .hv2-ingredient h3 { margin-bottom: 13px; }
    .pv2-how .hv2-ingredient p { font-size: 18px; line-height: 35px; }
    .pv2-how .hv2-steps { gap: 110px; margin-top: 123px; }
    .pv2-how .hv2-step__icon { margin-bottom: 18px; }
    .pv2-how .hv2-steps h3 { min-height: 0; line-height: 35px; margin-bottom: 13px; max-width: 320px; }
    .pv2-how .hv2-steps p { max-width: 320px; }
    .pv2-how .hv2-center { margin-top: 80px !important; }

    /* Powerful proven protection: 2 x 2 cards, 300 tall */
    section.pv2-protect { padding: 24px 0 56px !important; }
    .pv2-protect .pv2-protect__cards { grid-template-columns: 1fr 1fr; gap: 12px; }
    .pv2-protect .pv2-protect__cards img { height: 300px; object-fit: contain; }
    .pv2-protect .hv2-center { margin-top: 24px !important; }

    /* What's inside: centred cards, 2 x 2 spec grid, label + 'Tap to enlarge' */
    section.pv2-whatsinside { padding: 56px 0 !important; }
    .pv2-whatsinside .hv2-head { margin-bottom: 28px; }
    .pv2-whatsinside .pv2-ingcards { gap: 28px; margin-bottom: 28px; }
    .pv2-whatsinside .pv2-ingcard { padding: 23px 20px; text-align: center; border-radius: 14px; }
    .pv2-whatsinside .pv2-ingcard small { font-size: 12px; line-height: 15px; margin-bottom: 10px; }
    .pv2-whatsinside .pv2-ingcard h3 { font-size: 22px; line-height: 27px; margin-bottom: 10px; }
    .pv2-whatsinside .pv2-ingcard p { font-size: 15px; line-height: 24px; }
    .pv2-whatsinside .pv2-specs { grid-template-columns: 1fr 1fr; border-radius: 14px; margin-bottom: 28px !important; }
    .pv2-whatsinside .pv2-specs li { padding: 18px 8px 17px; border-bottom: 1px solid #EEF2F3; }
    .pv2-whatsinside .pv2-specs li:nth-child(n+3) { border-bottom: 0; }
    .pv2-whatsinside .pv2-specs li:nth-child(2n) { border-right: 0; }
    .pv2-whatsinside .pv2-specs b { font-size: 20px; line-height: 24px; margin-bottom: 2px; }
    .pv2-whatsinside .pv2-specs span { font-size: 13px; line-height: 16px; }
    .pv2-whatsinside .pv2-label { border-radius: 14px; }
    .pv2-label__tap { display: block; margin-top: 28px; font-size: 13px; font-weight: 600; color: var(--hv2-teal); }

    /* How to use: horizontal step cards */
    section.pv2-use { padding: 56px 0 !important; }
    .pv2-use .hv2-head { margin-bottom: 28px; }
    .pv2-use .pv2-usesteps { gap: 28px; }
    .pv2-use .pv2-usesteps li { display: grid; grid-template-columns: 44px 1fr; column-gap: 16px; align-items: center; text-align: left; padding: 19px 19px; border-radius: 14px; }
    .pv2-use .pv2-usesteps b { grid-row: 1 / span 2; width: 44px; height: 44px; margin: 0; font-size: 20px; }
    .pv2-use .pv2-usesteps h3 { font-size: 18px; line-height: 22px; margin: 0 0 4px; align-self: end; }
    .pv2-use .pv2-usesteps p { font-size: 14px; line-height: 21px; align-self: start; }

    /* Timeline: photo 390 x 320, 34px rail */
    section.pv2-timeline { padding: 56px 0 40px !important; }
    .pv2-timeline .pv2-timeline__row { gap: 24px; }
    .pv2-timeline .pv2-timeline__row > img { height: 320px; border-radius: 16px; }
    .pv2-timeline .pv2-stages { padding-top: 0; }
    .pv2-timeline .pv2-stages > li { padding: 0 0 20px 50px; }
    .pv2-timeline .pv2-stages > li:not(:last-child)::after { left: 16px; top: 34px; }
    .pv2-timeline .pv2-stages b { width: 34px; height: 34px; font-size: 16px; }
    .pv2-timeline .pv2-stages small { font-size: 12px; line-height: 15px; margin-bottom: 6px; }
    .pv2-timeline .pv2-stages h3 { font-size: 19px; line-height: 23px; margin-bottom: 6px; }
    .pv2-timeline .pv2-stages ul li { font-size: 15px; line-height: 22px; padding: 0 0 6px 20px; }
    section.pv2-timeline .pv2-timeline__note { margin-top: 24px !important; font-size: 15px; line-height: 23px; }
    .pv2-timeline .hv2-center { margin-top: 24px !important; }

    /* Compare: the table becomes four cards (dark row label, competitors line, MasterPeace line) */
    section.pv2-compare { padding: 16px 0 56px !important; }
    .pv2-compare .pv2-table, .pv2-compare .pv2-table tbody { display: block; border: 0 !important; background: none !important; }
    .pv2-compare .pv2-table thead { display: none; }
    .pv2-compare .pv2-table tr { display: block; margin: 0 0 24px; border: 1px solid #E5E5E5; border-radius: 14px; overflow: hidden; background: #fff; }
    .pv2-compare .pv2-table tbody th { display: block; width: auto !important; padding: 12px 16px !important; background: #383838 !important; color: #fff !important; font-size: 15px; line-height: 18px !important; text-align: left; }
    .pv2-compare .pv2-table td { display: flex; align-items: flex-start; gap: 6px; width: auto !important; padding: 12px 16px !important; font-size: 14px; line-height: 21px !important; color: #4C4C4C; text-align: left; border: 0 !important; }
    .pv2-compare .pv2-table td i { order: -2; flex: none; width: 17px; }
    .pv2-compare .pv2-table td::before { order: -1; content: attr(data-label) ":"; font-weight: 700; color: #383838; white-space: nowrap; }
    .pv2-compare .pv2-table td.is-mp { background: rgba(63,167,194,.12) !important; color: #4C4C4C; }
    /* Ollie 13 Oct: each answer on one line on phones too: label on its own line, answer below it, a touch smaller */
    .pv2-compare .pv2-table td { flex-wrap: wrap; row-gap: 2px; white-space: nowrap; font-size: clamp(12px, 3.6vw, 14px); }
    .pv2-compare .pv2-table td::before { order: -3; flex-basis: 100%; }
    .pv2-compare .hv2-center { margin-top: 0 !important; }
}
@media (max-width: 899px) {
    section.pv2-how .hv2-head .hv2-pill { font-size: 16px; height: 40px; }
    .pv2-how .hv2-ingredients { margin-top: 57px !important; }
    .pv2-how .hv2-steps { margin-top: 123px !important; gap: 128px !important; }
    .pv2-how .hv2-steps li:first-child { margin-top: 0; }
    .pv2-how .hv2-center { margin-top: 81px !important; }
}
@media (max-width: 899px) {
    /* reviews: cards scroll sideways (300 x 218) */
    section.pv2-reviews--fig, section.pv2-faq, section.pv2-pairs { padding: 56px 0 !important; }
    .pv2-reviews--fig .hv2-head, section.pv2-faq .hv2-head, section.pv2-pairs .hv2-head { margin-bottom: 28px; }
    .pv2-reviews--fig:not(.is-all) #reviews-list { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -20px; padding: 0 20px; scrollbar-width: none; }
    .pv2-reviews--fig:not(.is-all) #reviews-list::-webkit-scrollbar { display: none; }
    .pv2-reviews--fig:not(.is-all) #reviews-list .review-item { flex: 0 0 300px; scroll-snap-align: start; }
    .pv2-reviews--fig .review-item { padding: 21px !important; gap: 10px; min-height: 218px; border-radius: 14px !important; }
    .pv2-reviews--fig .review-item-title { font-size: 17px !important; line-height: 21px !important; }
    .pv2-reviews--fig .review-item-text { font-size: 15px !important; line-height: 23px !important; }
    .pv2-allreviews { margin-top: 28px !important; }
    .pv2-allreviews__link { font-size: 15px; }
    /* FAQ: 61px rows */
    .pv2-faq .pv2-accordion { gap: 10px; }
    .pv2-faq .pv2-accordion summary { min-height: 59px; padding: 0 19px; font-size: 16px; line-height: 22px; }
    .pv2-faq .pv2-accordion details > div { padding: 0 19px 17px; margin-top: -7px; }
    .pv2-faq .pv2-accordion details > div p { font-size: 15px; line-height: 22px; }
    /* final CTA */
    section.pv2-cta { padding: 56px 0 !important; }
    section.pv2-cta h2 { font-size: 28px; line-height: 36px; margin-bottom: 16px; }
    section.pv2-cta p { font-size: 16px; line-height: 24px; margin-bottom: 16px; }
    section.pv2-cta .hv2-btn { height: 56px; border-radius: 9px; }
    .pv2-note { font-size: 11px !important; line-height: 17px !important; }
}
.pv2-faq .pv2-accordion details[open] summary i { transform: none !important; }
/* same for the product page's fixed-size images (section[class^=pv2-] :where(img) sets height:auto) */
section[class^="pv2-"] .pv2-story img { height: 100%; }
section[class^="pv2-"] img.pv2-label { height: auto; }
section.pv2-timeline .pv2-timeline__row > img { height: 560px; }
section.pv2-protect .pv2-protect__cards img { height: 410px; }
@media (max-width: 899px) { section.pv2-timeline .pv2-timeline__row > img { height: 320px; } section.pv2-protect .pv2-protect__cards img { height: 300px; } }

/* =====================================================================
   Product sections for the other six products (Steven's product frames, 13 Oct 2026):
   why cards, plain What's inside, tick/cross table, pairing table, dosing chart.
   ===================================================================== */
section.pv2-why, section.pv2-check, section.pv2-pairing { padding: 88px 0 !important; }
section.pv2-why { background: #fff !important; padding-top: 56px !important; }
section.pv2-check { background: var(--hv2-teal-pale) !important; }
section.pv2-pairing, section.pv2-whatsinside.pv2-whatsinside--plain, section.pv2-use { background: #fff !important; }
section.pv2-why .hv2-head, section.pv2-check .hv2-head, section.pv2-pairing .hv2-head { max-width: 1110px; margin: 0 auto 44px; text-align: center; }
section.pv2-why .hv2-head h2, section.pv2-check .hv2-head h2, section.pv2-pairing .hv2-head h2 { font-size: 40px; line-height: 52px; margin-bottom: 14px; }
section.pv2-why .hv2-head h2:last-child, section.pv2-check .hv2-head h2:last-child, section.pv2-pairing .hv2-head h2:last-child { margin-bottom: 0; }
section.pv2-why .hv2-head h2 span, section.pv2-check .hv2-head h2 span, section.pv2-pairing .hv2-head h2 span { color: var(--hv2-teal); }
section.pv2-why .hv2-head p { max-width: 720px; margin: 0 auto; font-size: 18px; line-height: 30px; color: #4C4C4C; }
.pv2-why__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; max-width: 1110px; margin: 0 auto; }
.pv2-why__card { overflow: hidden; border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; }
section.pv2-why .pv2-why__card img { display: block; width: 100%; height: 156px; object-fit: cover; }
.pv2-why__card > div { padding: 22px 24px 28px; text-align: center; }
.pv2-why__card h3 { margin: 0 0 10px; font-size: 20px; line-height: 27px; font-weight: 700; color: #383838; }
.pv2-why__card p { margin: 0 !important; font-size: 16px; line-height: 25px; font-weight: 500; color: #4C4C4C; }
/* tick / cross table */
.pv2-ctable, .pv2-ptable { width: 100%; max-width: 820px; margin: 0 auto; border-collapse: separate; border-spacing: 0; overflow: hidden; border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; }
.pv2-ctable thead th, .pv2-ptable thead th { height: 65px; padding: 0 16px; background: #383838; color: #fff; font-size: 16px; font-weight: 700; text-align: center; }
.pv2-ctable thead th:first-child, .pv2-ptable thead th:first-child { width: 422px; }
.pv2-ctable thead th.is-us, .pv2-ptable thead th:nth-child(2) { color: var(--hv2-teal); }
.pv2-ctable tbody th, .pv2-ptable tbody th { padding: 18px 16px 18px 28px; text-align: left; font-size: 16px; line-height: 22px; font-weight: 600; color: #383838; }
.pv2-ctable tbody td, .pv2-ptable tbody td { width: 170px; padding: 14px 12px; text-align: center; font-size: 16px; line-height: 20px; font-weight: 600; color: #383838; }
.pv2-ctable tbody tr + tr > *, .pv2-ptable tbody tr + tr > *, .pv2-ctable tbody tr:first-child > *, .pv2-ptable tbody tr:first-child > * { border-top: 1px solid #E5E5E5; }
.pv2-tick, .pv2-cross { font-style: normal; font-size: 20px; font-weight: 700; line-height: 24px; }
.pv2-tick { color: #1BAD23; }
.pv2-cross { color: #D94040; }
.pv2-chart__note { max-width: 820px; margin: 20px auto 0 !important; text-align: center; font-size: 14px; line-height: 22px; color: #4C4C4C; }
/* dosing chart */
.pv2-chart { max-width: 820px; margin: 44px auto 0; overflow: hidden; border: 1px solid #E5E5E5; border-radius: 16px; background: #fff; }
.pv2-chart__row { display: grid; grid-template-columns: 140px minmax(0, 1fr) 110px; gap: 20px; align-items: center; min-height: 52px; padding: 0 28px; }
.pv2-chart__row + .pv2-chart__row { border-top: 1px solid #E5E5E5; }
.pv2-chart__row:nth-child(odd):not(.pv2-chart__row--head) { background: rgba(63,167,194,.05); }
.pv2-chart__row--head { min-height: 54px; background: #383838; }
.pv2-chart__row--head span { font-size: 16px; font-weight: 700; color: #fff; }
.pv2-chart__row span:first-child { font-size: 16px; font-weight: 700; color: #383838; }
.pv2-chart__row span:nth-child(2) { font-size: 16px; line-height: 22px; font-weight: 500; color: #4C4C4C; }
.pv2-chart__row span:last-child { text-align: center; font-size: 20px; font-weight: 700; color: var(--hv2-teal); }
.pv2-chart__row--head span:first-child, .pv2-chart__row--head span:nth-child(2) { color: #fff; }
.pv2-chart__row--head span:last-child { font-size: 16px; color: #fff; }
@media (max-width: 899px) {
    section.pv2-why, section.pv2-check, section.pv2-pairing { padding: 56px 0 !important; }
    section.pv2-why .hv2-head, section.pv2-check .hv2-head, section.pv2-pairing .hv2-head { margin-bottom: 28px; }
    section.pv2-why .hv2-head h2, section.pv2-check .hv2-head h2, section.pv2-pairing .hv2-head h2 { font-size: 30px; line-height: 38px; }
    section.pv2-why .hv2-head p { font-size: 16px; line-height: 26px; }
    .pv2-why__cards { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .pv2-ctable thead th:first-child, .pv2-ptable thead th:first-child { width: auto; }
    .pv2-ctable thead th, .pv2-ptable thead th { height: 54px; padding: 0 8px; font-size: 14px; }
    .pv2-ctable tbody th, .pv2-ptable tbody th { padding: 14px 10px 14px 16px; font-size: 14px; line-height: 20px; }
    .pv2-ctable tbody td { width: 84px; padding: 12px 6px; }
    .pv2-ptable tbody td { width: 30%; padding: 12px 6px; font-size: 13px; line-height: 18px; }
    .pv2-chart { margin-top: 28px; }
    .pv2-chart__row { grid-template-columns: 82px minmax(0, 1fr) 44px; gap: 10px; padding: 10px 14px; }
    .pv2-chart__row span:first-child, .pv2-chart__row span:nth-child(2) { font-size: 14px; line-height: 20px; }
    .pv2-chart__row--head span:last-child { font-size: 13px; }
}
/* Steven: exactly three video tiles across the strip (156 x 208 in his 540 frame), never a cut-off fourth */
.pv2-stories .pv2-story { flex: 0 0 calc((100% - 24px) / 3); width: auto; height: auto !important; aspect-ratio: auto; }
.pv2-stories .pv2-story::before { content: ""; display: block; padding-top: 133.3333%; pointer-events: none; }
@media (max-width: 899px) { .pv2-stories .pv2-story { flex-basis: calc((100% - 24px) / 3); } }
/* nothing shows in the strip's side margins (Steven shows three tiles and nothing else) */
.pv2-stories .pv2-stories__track { clip-path: inset(0 24px); }
@media (max-width: 899px) { .pv2-stories .pv2-stories__track { clip-path: inset(0 16px); } }
.pv2-stories .pv2-story__name { left: 6px; right: 6px; justify-content: center; white-space: nowrap; overflow: hidden; }
/* Steven: name 16px SemiBold, 18px teal tick, 14px above the tile's bottom edge */
.pv2-stories .pv2-story__name { top: auto !important; bottom: 14px; font-size: 16px; line-height: 20px; }
.pv2-stories .pv2-story__name i { width: 18px; height: 18px; font-size: 10px; line-height: 18px; }
@media (max-width: 899px) { .pv2-stories .pv2-story__name { font-size: 14px; bottom: 12px; } .pv2-stories .pv2-story__name i { width: 16px; height: 16px; line-height: 16px; } }
/* Steven's phone frame: 150 x 200 tiles that scroll, the third peeking in (only desktop shows exactly three) */
@media (max-width: 899px) {
    .pv2-stories .pv2-story { flex: 0 0 150px; height: 200px !important; aspect-ratio: auto; }
.pv2-stories .pv2-story::before { display: none; }
    .pv2-stories .pv2-stories__track { clip-path: none; }
    .pv2-stories .pv2-story__name { font-size: 14px; bottom: 14px; }
}
/* Phones: the four benefit labels were butting into each other ("BETTER SLEEPHEALTHIER CELLS..."). Equal columns, gap, wrap if needed. */
@media (max-width: 899px) {
    .pv2-buy .hv2-benefits.pv2-benefits { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; justify-content: stretch; }
    .pv2-buy .hv2-benefits.pv2-benefits li { min-width: 0; white-space: normal !important; text-align: center; line-height: 1.25; }
}
@media (max-width: 899px) {
    .pv2-buy .hv2-benefits.pv2-benefits { grid-template-columns: repeat(4, auto) !important; justify-content: space-between !important; gap: 8px !important; }
    .pv2-buy .hv2-benefits.pv2-benefits li { max-width: 86px; }
}
@media (max-width: 899px) {
    .pv2-buy .hv2-benefits.pv2-benefits { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; justify-content: stretch !important; gap: 14px !important; }
    .pv2-buy .hv2-benefits.pv2-benefits li { max-width: none; font-size: 10px !important; letter-spacing: 0 !important; }
}

/* ===== Members' Subscribe & Save squeezed into Steven's buy box (13 Oct 2026) ===== */
.pv2-auto, .pv2-auto-agree { display: none; }
.pv2-buy--auto .pv2-plan--sub .pv2-auto { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; padding: 0 16px 14px 52px; font-size: 13px; font-weight: 500; color: #4C4C4C; }
.pv2-auto__item { display: inline-flex; align-items: center; gap: 6px; }
.pv2-auto__k { white-space: nowrap; }
.pv2-buy .pv2-auto select, .pv2-buy .pv2-auto input { width: auto !important; height: 30px !important; min-height: 0 !important; margin: 0 !important; padding: 0 8px !important; border: 1px solid #D1D1D1 !important; border-radius: 6px !important; background: #fff !important; font: 600 13px/1 Montserrat, sans-serif !important; color: #383838 !important; box-shadow: none !important; }
.pv2-buy .pv2-auto select { padding-right: 22px !important; }
.pv2-buy .pv2-auto input { width: 104px !important; cursor: pointer; }
.pv2-auto .autoship-date-wrapper { position: static; display: inline-flex; margin: 0; padding: 0; }
.pv2-auto .autoship-date-icon { display: none !important; }
.pv2-auto__more { padding: 0; border: 0; background: none; font: 600 13px/1 Montserrat, sans-serif; color: var(--hv2-teal); text-decoration: underline; cursor: pointer; }
/* the store's full Autoship box: only from "See details" */
.pv2-buy #autoship-form { display: none !important; }
.pv2-buy.pv2-buy--auto #autoship-form.is-open { display: block !important; margin: 0 0 14px; }
.pv2-buy #autoship-form .autoship-field-row, .pv2-buy #autoship-form .gridflexrow { display: none !important; }
.pv2-buy #autoship-form .autoship-form-content { padding: 14px 16px; }
.pv2-buy #autoship-form .autoship-terms label { display: none; }
/* agree line above Add to Cart */
.pv2-buy--auto .pv2-auto-agree { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 12px; font-size: 13px; line-height: 18px; font-weight: 500; color: #4C4C4C; cursor: pointer; }
.pv2-auto-agree input { flex: none; width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--hv2-teal); }
.pv2-auto-agree b { font-weight: 700; color: #383838; }
.pv2-auto-agree a { color: var(--hv2-teal); font-weight: 600; text-decoration: underline; }
/* Steven's - 1 + stepper stays next to Add to Cart for Subscribe & Save too */
.pv2-buy.pv2-buy--auto .quantity_cart_main .quantity { display: flex !important; }
@media (max-width: 899px) { .pv2-buy--auto .pv2-plan--sub .pv2-auto { padding-left: 16px; } }
.pv2-buy .pv2-auto-agree, .pv2-buy .pv2-auto-agree__text { text-align: left; }

/* Pairs cards: the old store gives every .price a 25px top/bottom margin, which pushed the price under
   Add to Cart (Ollie, 13 Oct 2026). Same reset the Shop cards use. */
.pv2-pairs .pv2-pair .sv2-card__price .price, .pv2-pairs .pv2-pair .sv2-card__price a { display: inline-flex; align-items: baseline; gap: 8px; margin: 0 !important; padding: 0 !important; line-height: 29px !important; font-size: 24px; font-weight: 700; color: #383838; }
/* ...and every card's body fills the card, so all four Add to Cart buttons line up along the bottom */
.pv2-pairs .pv2-pair .sv2-card__body { flex: 1 1 auto !important; }
.pv2-pairs .pv2-pair .sv2-card__desc { flex: 1 1 auto !important; }
/* the old store sets align-self:flex-start on phones; stretch so both cards in a row share one button line */
.pv2-pairs .pv2-pairs__grid .pv2-pair { align-self: stretch !important; height: auto !important; }

/* =====================================================================
   Product pages vs Steven's frames, second pass (13 Oct 2026)
   ===================================================================== */
/* pairs cards: Best seller on MasterPeace, short copy + "Save $x" badge on phones (his phone frames) */
.pv2-pairs .pv2-pair .sv2-card__desc .pv2-desc__short { display: none; }
/* final CTA price ("Add to Cart — $62.99") */
.pv2-pairs .pv2-pair .pv2-badge__long { margin-right: .3em; }
/* one-time price: 16px SemiBold in every desktop frame (the subscribe price stays 18px Bold) */
.pv2-plans .pv2-plan--one .pv2-plan__price { font-size: 16px; font-weight: 600; }
/* chart / pairing notes: 14/22 on desktop (the section's generic p rule made them 16px) */
section .pv2-chart__note { font-size: 14px !important; line-height: 22px !important; }
section.pv2-pairing .pv2-chart__note { font-weight: 600; color: #383838; }
@media (max-width: 899px) {
    .pv2-pairs .pv2-pair .sv2-card__desc .pv2-desc__long, .pv2-pairs .pv2-pair .pv2-badge__long { display: none; }
    .pv2-pairs .pv2-pair .sv2-card__desc .pv2-desc__short { display: inline; }
    .pv2-pairs .pv2-pair .sv2-card__sold { font-size: 11px; }
    /* lead under the product name: 18/28 like every phone frame (the old store forces .srt_desc to 24px) */
    .pv2-buy .pv2-short.srt_desc { font-size: 18px !important; line-height: 28px !important; }
    /* buy box rhythm inside his Purchase block: 12px plans -> quantity -> Add to Cart */
    .pv2-plans { margin-bottom: 12px; }
    .pv2-buy .quantity_cart_main { gap: 12px; margin-top: 0 !important; }
    .pv2-trust { gap: 8px 14px; line-height: 16px; }
    .pv2-plan__text small { color: #4C4C4C; }
    .pv2-plan--sub .pv2-plan__price b { font-size: 20px; }
    /* section headings: 28/36 in every phone frame */
    section.pv2-why .hv2-head h2, section.pv2-check .hv2-head h2, section.pv2-pairing .hv2-head h2, .pv2-reviews--fig .hv2-head h2 { font-size: 28px !important; line-height: 36px !important; }
    .pv2-why__card h3 { font-size: 18px; line-height: 24px; }
    .pv2-why__card p { font-size: 14px; line-height: 22px; }
    .pv2-tick, .pv2-cross { font-size: 18px; }
    section .pv2-chart__note { font-size: 12px !important; line-height: 18px !important; }
    section.pv2-pairing .pv2-chart__note { line-height: 19px !important; }
    .pv2-chart__row span:last-child { font-size: 16px; }
    /* MasterRestore, MasterSupport, MasterSolergy, Pets (and the Pets bundle): 20px between the blocks, 10px between key points */
    .pv2-buy--g20 .pv2-short { margin-bottom: 20px !important; }
    .pv2-buy--g20 .pv2-points { gap: 10px; margin-bottom: 20px !important; }
    .pv2-buy--g20 .hv2-rating { margin-bottom: 20px; }
    .pv2-buy--g20 .quantity_cart_main, .pv2-buy--g20 .pv2-trust { margin-bottom: 20px !important; }
    .pv2-buy--pets .pv2-pill { font-size: 14px; }
}
/* Pets "Why pets need this now": Steven starts it 32px under the hero on desktop and right under the stories card on phones */
section.pv2-why { padding-top: 32px !important; }
@media (max-width: 899px) { section.pv2-why { padding-top: 16px !important; } }

/* ---------------------------------------------------------------------------------------------------------
   Robust picture boxes (17 Oct 2026, after Ollie's iPad check). The boxes below used to get their height from
   aspect-ratio while the picture inside filled them; on the iPad that let pictures spill over the next text.
   Each now gets an invisible spacer (its ::before, or ::after where ::before was taken, padding-top = the
   same shape, set right after its own rules above) and the picture sits on top of it. Same idea as the fix
   confirmed on Ollie's iPad on /sarah.
   --------------------------------------------------------------------------------------------------------- */

/* Product buy box on iPads held sideways: the four benefit icons fit (labels wrap) instead of running together and the last one being cut off */
@media (min-width: 900px) and (max-width: 1199px) {
    .pv2-buy .pv2-benefits { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 10px; max-width: none; }
    .pv2-buy .pv2-benefits li { min-width: 0; white-space: normal; text-align: center; font-size: 13px; line-height: 1.3; }
}
@media (min-width: 900px) and (max-width: 1099px) { .pv2-buy .pv2-benefits { grid-template-columns: repeat(2, minmax(0, 1fr)); } }   /* narrower buy column: two by two so RESTORATION fits */

/* iPad portrait (600-899): the steps are two by two (home-v2.css); the phone frame's 128px gaps between them read as
   holes at two across, so the same spacing as the home page steps */
@media (min-width: 600px) and (max-width: 899px) {
    section.pv2-how .hv2-steps { gap: 48px 30px !important; margin-top: 64px !important; }
}

/* Proof videos: the phone frame shows one video, but from 768px the video row has two columns, so on an upright iPad the
   one video sat beside an empty half (Ollie, 17 Oct 2026): show both again there */
@media (min-width: 768px) and (max-width: 899px) {
    .pv2-proof .hv2-videos .hv2-video:nth-child(2) { display: block; }
}
/* Detox timeline on upright iPads: the photo beside the stages at its own shape, as on computers; a full-width 320px
   strip of this tall photo cut the woman's head off (Ollie, 17 Oct 2026) */
@media (min-width: 600px) and (max-width: 899px) {
    section.pv2-timeline .pv2-timeline__row { grid-template-columns: minmax(0, 36%) minmax(0, 1fr); gap: 32px; align-items: start; }
    section.pv2-timeline .pv2-timeline__row > img { height: auto; }
}
/* Reducing cards (How It Works + product pages): the four pictures were cut at slightly different shapes, so at one
   column width the narrower ones (Forever Chemicals, Heavy Metals) came out taller. Steven draws four equal cards:
   every card now gets the same box (the widest picture's shape) and is shown whole inside it, so all four are the same
   height at every screen size (Ollie, 17 Oct 2026) */
section.pv2-protect .pv2-protect__cards img { width: 100% !important; height: auto !important; aspect-ratio: 272 / 404; object-fit: contain; }
@media (max-width: 899px) { section.pv2-protect .pv2-protect__cards img { max-height: 300px; } }   /* two per row: keep them 300px tall, all four alike */

/* Build the rest of your protocol: always the full width (old groceries.css limits .product_main to 350px below 981px,
   so on an upright iPad the cards sat in the left 350px) and a short row is centred (a visitor who is not logged in
   gets 3 cards, which left the 4th slot empty on the right). Ollie's iPad, 17 Oct 2026. */
section.pv2-pairs .pv2-pairs__grid { max-width: none !important; width: 100%; display: flex !important; flex-wrap: wrap; justify-content: center; gap: 20px; }
section.pv2-pairs .pv2-pairs__grid > * { flex: 0 0 calc((100% - 60px) / 4); min-width: 0; }
@media (max-width: 899px) {
    section.pv2-pairs .pv2-pairs__grid { gap: 12px; }
    section.pv2-pairs .pv2-pairs__grid > * { flex-basis: calc((100% - 36px) / 4); }
}
@media (max-width: 599px) { section.pv2-pairs .pv2-pairs__grid > * { flex-basis: calc((100% - 12px) / 2); } }

/* Steven's batch 4 frame G7 (19 Oct 2026): "Logged in as Jane. Manage frequency, skip or pause in My Subscription
   (Autoship)." above the purchase options for a signed-in member (product.php). */
.pv2-member { display: flex; align-items: center; gap: 10px; max-width: 460px; margin: 0 0 12px; padding: 12px 15px; border: 1px solid #CFE7EF; border-radius: 12px; background: #EEF8FB; text-align: left; }
.pv2-member__avatar { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #3FA7C2; color: #fff; font: 800 11px/1 Montserrat, sans-serif; letter-spacing: 0; }
.pv2-member p { margin: 0; font: 500 13px/1.45 Montserrat, sans-serif !important; color: #383838 !important; text-transform: none !important; letter-spacing: 0 !important; text-align: left !important; }
.pv2-member b { font-weight: 700; }
.pv2-member a { color: #3FA7C2; font-weight: 700; text-decoration: none; }
.pv2-member a:hover { text-decoration: underline; }
@media (max-width: 959px) { .pv2-member { max-width: none; margin-bottom: 16px; } }

/* Steven's batch 4 frame G8 (19 Oct 2026): the long combo name (MasterPeace for Pets + MasterRestore (for Humans)
   Combo) is set at 40px on a computer and 28px on a phone, so it reads in three lines. */
.pv2-buy .pv2-title.pv2-title--long { font-size: 40px; line-height: 1.15; margin-bottom: 10px; }
@media (max-width: 959px) { .pv2-buy .pv2-title.pv2-title--long { font-size: 28px; line-height: 1.15; } }

/* Steven's batch 4 frame G9 (19 Oct 2026): the MasterPeace gallery has six pictures (bottle, two lifestyle photos,
   product line, supplement facts, How to Use), so its thumbnails are 80px (56px on phones) and the How to Use
   thumbnail is his teal tile with a drop. Only galleries with six thumbnails (product.php adds .pv2-gallery--six). */
.pv2-gallery--six .thumbnail-swiper .swiper-slide { width: 80px !important; height: 80px !important; }
.pv2-gallery--six .thumbnail-swiper .swiper-slide:nth-child(3) { background: #fff; }
.pv2-gallery--six .thumbnail-swiper .swiper-slide:nth-child(3) img { object-fit: contain; }
.pv2-gallery--six .thumbnail-swiper .swiper-slide:nth-child(4) { background: #F2F2F2; }
.pv2-gallery--six .thumbnail-swiper .swiper-slide:nth-child(4) img { object-fit: cover; object-position: 50% 50%; }
.pv2-gallery--six .thumbnail-swiper .swiper-slide:nth-child(5) { background: #fff; }
.pv2-gallery--six .thumbnail-swiper .swiper-slide:nth-child(5) img { object-fit: cover; object-position: 30% 50%; }
.pv2-gallery--six .thumbnail-swiper .pv2-thumb--text,
.pv2-gallery--six .thumbnail-swiper .pv2-thumb--text.swiper-slide-thumb-active { border: 1px solid #3FA7C2; background: #3FA7C2; }
.pv2-gallery--six .thumbnail-swiper .pv2-thumb--text.swiper-slide-thumb-active { border: 3px solid #2E8BA4; }
.pv2-gallery--six .thumbnail-swiper .pv2-thumb--text span { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: #fff; font: 800 11px/1.2 Montserrat, sans-serif; letter-spacing: 0; }
.pv2-gallery--six.is-howto .pv2-gallery__badge { opacity: 0; }   /* his How to Use slide covers the badge */
.pv2-gallery--six .thumbnail-swiper .pv2-thumb--text span::before { content: ""; width: 22px; height: 22px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M11 3.2c-.3 0-.5.1-.7.4C8.6 6 5.5 10.2 5.5 13.2a5.5 5.5 0 0 0 11 0c0-3-3.1-7.2-4.8-9.6-.2-.3-.4-.4-.7-.4z' fill='%23fff'/%3E%3C/svg%3E") center / 22px 22px no-repeat; }
@media (max-width: 959px) {
    .pv2-gallery--six .thumbnail-swiper .swiper-slide { width: 66px !important; height: 66px !important; }
}
@media (max-width: 599px) {
    .pv2-gallery--six .thumbnail-swiper .swiper-slide { width: 56px !important; height: 56px !important; }
    .pv2-gallery--six .thumbnail-swiper .pv2-thumb--text span { gap: 2px; font-size: 9px; }
    .pv2-gallery--six .thumbnail-swiper .pv2-thumb--text span::before { width: 16px; height: 16px; background-size: 16px 16px; }
}

/* G9 phone How to Use picture (product.php wraps it in <picture>): the img keeps the slide sizing */
.pv2-gallery--fig .pv2-slide picture { display: contents; }

/* Steven's batch 4 frame G5 (19 Oct 2026): out of stock on the product page (product.php sets .pv2-buy--oos when
   items.out_of_stock is 1, or for the look-only preview ?oos-preview=1). */
.pv2-oos-badge { display: flex; align-items: center; gap: 6px; width: max-content; height: 28px; margin: 0 0 14px; padding: 0 13px; border-radius: 999px; background: #FDECEC; color: #D64545; font: 800 13px/1.2 Montserrat, sans-serif; letter-spacing: 0; }
.pv2-oos-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #D64545; }
.pv2-buy--oos .pv2-plans { opacity: .5; pointer-events: none; }
.pv2-buy--oos .quantity_cart_main, .pv2-buy--oos .pv2-auto-agree, .pv2-buy--oos #autoship-form { display: none !important; }
.pv2-oos { display: flex; flex-direction: column; gap: 12px; max-width: 460px; margin: 0 0 24px; }
.pv2-oos__btn { width: 100%; height: 58px; border: 0; border-radius: 12px; background: #E6ECEF; color: #8C989E; font: 800 18px/1.2 Montserrat, sans-serif; cursor: not-allowed; }
.pv2-notify { padding: 17px; border: 1px solid #E3EEF2; border-radius: 14px; background: #F4F9FB; text-align: left; }
.pv2-buy .pv2-notify .pv2-notify__title { margin: 0 0 10px; font: 800 15px/1.3 Montserrat, sans-serif !important; color: #383838; letter-spacing: 0; text-transform: none; }
.pv2-buy .pv2-notify .pv2-notify__text { margin: 0 0 10px; font: 500 13px/1.5 Montserrat, sans-serif !important; color: #6B7A82; }
.pv2-notify__form { display: flex; align-items: center; gap: 10px; margin: 0; }
.pv2-notify__form input[type="email"] { flex: 1; min-width: 0; height: 48px; padding: 0 15px; border: 1px solid #D7E3E8; border-radius: 10px; background: #fff; color: #383838; font: 500 14px/1.2 Montserrat, sans-serif; }
.pv2-notify__form button { flex: none; height: 45px; padding: 0 18px; border: 0; border-radius: 10px; background: #3FA7C2; color: #fff; font: 800 14px/1.2 Montserrat, sans-serif; cursor: pointer; }
.pv2-notify__form button[disabled] { opacity: .65; cursor: not-allowed; }
@media (max-width: 959px) {
    .pv2-oos-badge { margin: 0 auto 14px; }
    .pv2-oos { max-width: none; }
}

/* Device check 19 Oct 2026 (iPad mini landscape, 960-1199px): the buy column is about 400px wide, so
   'ADD TO CART' kept wrapping onto two lines and the long Pets combo name ran to five lines. */
@media (min-width: 960px) and (max-width: 1199px) {
    .pv2-buy .quantity_cart_main .quantity { flex: 0 0 132px; width: 132px !important; min-width: 0; }
    .pv2-buy .cart_btn a.add_to_cart { white-space: nowrap; letter-spacing: 0; font-size: 15px; gap: 8px; }
    .pv2-buy .pv2-title.pv2-title--long { font-size: 32px; line-height: 1.15; }
    .pv2-buy .pv2-sold { font-size: 15px; }
}
