/* Default product pages (body.mv-product-page, inc/woocommerce-product.php): product pages the lesson engine does
   not lay out – goods and plain services. Same language as the shop (shop.css, option B), the cart (checkout.css)
   and the configured pages (lesson-configurator.css): warm ground, sentence-case Satoshi headings, rounded photos,
   a sand card for the buying part, pill chips, stepper and buttons, „Panašūs produktai“ as shop cards.
   Astra and WooCommerce style these parts with .woocommerce div.product … and .woocommerce-js … chains, hence the
   long selectors below.
   The page shell – ground, top spacing, category line, title, price, short description and „Panašūs produktai“ – is
   shared with the lesson engine's pages (body.mv-lesson-product-page: lessons, courses, the voucher, the choice
   page), hence :is(.mv-product-page, .mv-lesson-product-page) on those rules; the photos, the buying card and the
   tabs stay default-only (the configured pages have their own form and price card in lesson-configurator.css). */

body:is(.mv-product-page, .mv-lesson-product-page) {
    --mv-ink: #510000;
    --mv-ink-2: rgba(81, 0, 0, .85);
    --mv-muted: rgba(81, 0, 0, .65);
    --mv-eyebrow: rgba(81, 0, 0, .7);
    --mv-ground: #f9f6ed;
    --mv-sand: #f4f1e6;
    --mv-line: rgba(81, 0, 0, .14);
    --mv-line-2: rgba(81, 0, 0, .22);
    --mv-peach: #ffc2b0;
    --mv-coral: #e86d64;
    --mv-coral-soft: rgba(232, 109, 100, .18);
    --mv-coral-tint: #ffefe9;
    background: var(--mv-ground);
}

body:is(.mv-product-page, .mv-lesson-product-page) #content.site-content {
    background: var(--mv-ground);
}

/* Top of the page: the Customizer's Additional CSS adds 40px (!important) to the container and to the
   WooCommerce wrapper, and Astra zeroes #primary's margins (.ast-plain-container.ast-no-sidebar #primary);
   keep one 56px gap, like the cart. */
body:is(.mv-product-page, .mv-lesson-product-page):not(.fl-builder) #content.site-content > .ast-container {
    margin-top: 0 !important;
    margin-bottom: 0;
}

body:is(.mv-product-page, .mv-lesson-product-page) .ast-container .site-main .ast-woocommerce-container {
    margin-top: 0 !important;
    margin-bottom: 0;
}

body:is(.mv-product-page, .mv-lesson-product-page).ast-plain-container #primary {
    margin-top: 56px;
    margin-bottom: 80px;
}

/* -------------------------------------------------------------------------
 * Layout: photos left (sticky while the text scrolls), text and buying card right, in their own wrapper
 * (div.mv-product-top, inc/woocommerce-product.php) so the sticky column stops where the text ends; the tabs and
 * „Panašūs produktai“ follow full width.
 * ---------------------------------------------------------------------- */

.mv-product-page div.product .mv-product-top {
    position: relative; /* the sale badge sits on the photo's corner */
    display: grid;
    grid-template-columns: minmax(0, 11fr) minmax(0, 10fr);
    column-gap: 56px;
    align-items: start;
}

.woocommerce.mv-product-page #content .ast-woocommerce-container div.product .mv-product-top > div.images,
.woocommerce.mv-product-page #content .ast-woocommerce-container div.product .mv-product-top > .woocommerce-product-gallery {
    grid-column: 1;
    grid-row: 1;
    position: sticky;
    top: 24px;
    float: none;
    width: 100%;
    max-width: none;
    margin: 0;
}

.woocommerce.mv-product-page #content .ast-woocommerce-container div.product .mv-product-top > div.summary {
    grid-column: 2;
    grid-row: 1;
    float: none;
    width: 100%;
    margin: 0;
    padding: 0;
}

/* -------------------------------------------------------------------------
 * Photos (Product Gallery Slider: slick main slider .wpgs-for, thumbnail strip .wpgs-nav)
 * ---------------------------------------------------------------------- */

.mv-product-page .wpgs-for .slick-list,
.mv-product-page .woocommerce-product-gallery__wrapper {
    border-radius: 20px;
    overflow: hidden;
}

.mv-product-page .wpgs-for img,
.mv-product-page .woocommerce-product-gallery__image img {
    display: block;
    width: 100%;
    height: auto;
}

/* Main slider arrows: white pills on the photo */
.mv-product-page .wpgs-for .slick-arrow {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin: 0;
    border-radius: 999px;
    background: rgba(249, 246, 237, .92);
    color: var(--mv-ink);
    font-size: 0;
    line-height: 1;
    opacity: 1;
    transition: background-color .15s, opacity .15s;
}

.mv-product-page .wpgs-for .slick-arrow::before {
    margin: 0;
    color: var(--mv-ink);
    font-size: 18px;
    line-height: 1;
}

.mv-product-page .wpgs-for .slick-arrow.flaticon-back {
    left: 14px;
}

.mv-product-page .wpgs-for .slick-arrow.flaticon-right-arrow {
    right: 14px;
}

.mv-product-page .wpgs-for .slick-arrow:hover {
    background: #fff;
}

.mv-product-page .wpgs-for .slick-arrow.slick-disabled {
    opacity: 0;
    pointer-events: none;
}

/* The plugin's zoom icon on tablets and phones: a white pill like the arrows */
.mv-product-page .wpgs-for .wpgs-lightbox-icon::before,
.mv-product-page .wpgs-for .wpgs-lightbox-icon i {
    color: var(--mv-ink);
}

/* Thumbnails: rounded, the current one ringed in ink */
.mv-product-page .wpgs-nav {
    margin-top: 12px;
}

.mv-product-page .wpgs-nav .slick-list {
    margin: 0 -5px;
}

.mv-product-page .wpgs-nav .slick-slide {
    padding: 0 5px;
    border: 0;
    opacity: 1;
}

.mv-product-page .wpgs-nav .slick-slide img {
    display: block;
    width: 100%;
    height: auto;
    border: 0 !important;
    border-radius: 12px;
    outline: 0;
}

.mv-product-page .wpgs-nav .slick-current img {
    box-shadow: inset 0 0 0 2px var(--mv-ink);
    outline: 2px solid var(--mv-ink);
    outline-offset: -2px;
}

.mv-product-page .wpgs-nav .slick-arrow {
    z-index: 2;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 0 0 1px var(--mv-line);
}

.mv-product-page .wpgs-nav .slick-arrow::before {
    color: var(--mv-ink);
    opacity: 1;
}

.mv-product-page .wpgs-nav .slick-arrow.slick-disabled {
    opacity: 0;
    pointer-events: none;
}

/* „Akcija“: the shop's butter pill, on the photo's corner */
.woocommerce.mv-product-page #content div.product .mv-product-top > span.onsale,
.woocommerce.mv-product-page #content div.product .woocommerce-product-gallery span.onsale {
    top: 16px;
    right: auto;
    left: 16px;
    z-index: 5;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0 14px;
    border-radius: 999px;
    background: #ffd577;
    color: var(--mv-ink);
    font-size: 14px;
    font-weight: 600;
    line-height: 30px;
}

/* -------------------------------------------------------------------------
 * Text: category, title, price, short description
 * ---------------------------------------------------------------------- */

:is(.mv-product-page, .mv-lesson-product-page) div.product .summary .single-product-category {
    display: block;
    margin: 0 0 8px;
    color: var(--mv-eyebrow);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .02em;
}

/* No category left once „Uncategorized“ / „Virtualūs produktai“ are left out (inc/woocommerce-product.php) */
:is(.mv-product-page, .mv-lesson-product-page) div.product .summary .single-product-category:empty {
    display: none;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .summary .single-product-category a {
    color: inherit;
    text-decoration: none;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .summary .single-product-category a:hover,
:is(.mv-product-page, .mv-lesson-product-page) div.product .summary .single-product-category a:focus-visible {
    color: var(--mv-ink);
    text-decoration: underline;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .summary h1.product_title {
    margin: 0 0 12px;
    color: var(--mv-ink);
    font-family: satoshi, 'Work Sans', sans-serif;
    font-size: 40px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
    text-transform: none;
    text-wrap: balance;
}

.woocommerce:is(.mv-product-page, .mv-lesson-product-page) div.product .summary p.price {
    margin: 0 0 24px;
    color: var(--mv-ink);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}

.woocommerce:is(.mv-product-page, .mv-lesson-product-page) div.product .summary p.price del {
    margin-right: 6px;
    color: var(--mv-ink);
    font-weight: 400;
    opacity: .5;
}

.woocommerce:is(.mv-product-page, .mv-lesson-product-page) div.product .summary p.price ins {
    font-weight: 700;
    text-decoration: none;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .summary .price .woocommerce-price-suffix {
    color: var(--mv-ink-2);
    font-size: 14px;
    font-weight: 500;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .woocommerce-product-details__short-description {
    color: var(--mv-ink);
    font-size: 16px;
    line-height: 1.65;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .woocommerce-product-details__short-description p {
    margin: 0 0 .9em;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .woocommerce-product-details__short-description > :last-child {
    margin-bottom: 0;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .woocommerce-product-details__short-description ul,
:is(.mv-product-page, .mv-lesson-product-page) div.product .woocommerce-product-details__short-description ol {
    margin: 0 0 .9em 1.2em;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product .woocommerce-product-details__short-description li {
    margin: 0 0 .35em;
}

/* -------------------------------------------------------------------------
 * Buying card: variation chips, price of the chosen variation, stepper and button on a sand card
 * ---------------------------------------------------------------------- */

.woocommerce.mv-product-page div.product form.cart,
.woocommerce-js.mv-product-page div.product form.cart {
    margin: 28px 0 0;
    padding: 24px;
    border-radius: 16px;
    background: var(--mv-sand);
    color: var(--mv-ink);
}

/* Simple products: stepper and button in one row */
.woocommerce.mv-product-page div.product form.cart:not(.variations_form),
.mv-product-page div.product form.cart .woocommerce-variation-add-to-cart {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

/* The form's clearfix pseudo-elements would be flex items and add a gap on each side. */
.woocommerce.mv-product-page div.product form.cart:not(.variations_form)::before,
.woocommerce.mv-product-page div.product form.cart:not(.variations_form)::after {
    content: none;
}

/* A fixed quantity (sold individually) is a hidden input in an empty div.quantity: no gap for it */
.mv-product-page div.product form.cart .quantity:not(:has(input:not([type="hidden"]))) {
    display: none;
}

/* Anything else in that row (Flexible Coupons' recipient fields) takes a line of its own; empty ones none. */
.mv-product-page div.product form.cart:not(.variations_form) > :not(.quantity, .single_add_to_cart_button, script, style),
.mv-product-page div.product form.cart .woocommerce-variation-add-to-cart > :not(.quantity, .single_add_to_cart_button) {
    flex: 1 0 100%;
}

.mv-product-page div.product form.cart .pdf-coupon-fields:empty,
.mv-product-page div.product form.cart .gtm4wp_single_productdata {
    display: none;
}

/* Attribute rows: label as the configurator's step title, values as chips */
.woocommerce.mv-product-page div.product form.cart table.variations {
    display: block;
    margin: 0;
    border: 0;
}

.woocommerce.mv-product-page div.product form.cart table.variations :is(tbody, tr, th, td) {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

.woocommerce.mv-product-page div.product form.cart table.variations tr + tr {
    margin-top: 20px;
}

.woocommerce.mv-product-page div.product form.cart table.variations th.label {
    margin: 0 0 10px;
    line-height: 1.3;
}

.woocommerce.mv-product-page div.product form.cart table.variations th.label label {
    margin: 0;
    color: var(--mv-ink);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

/* The <select> stays in the form for WooCommerce; the chips stand in for it (assets/product.js). */
.woocommerce.mv-product-page div.product form.cart table.variations select.mv-product-select {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
    opacity: 0;
    pointer-events: none;
}

/* Without JS: a pill dropdown */
.woocommerce.mv-product-page div.product form.cart table.variations select {
    width: 100%;
    max-width: 420px;
    min-height: 44px;
    margin: 0;
    padding: 0 40px 0 16px;
    border: 1.5px solid var(--mv-line-2);
    border-radius: 999px;
    background-color: #fff;
    color: var(--mv-ink);
    font-size: 15px;
}

.mv-product-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mv-product-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin: 0;
    padding: 10px 18px;
    border: 1.5px solid var(--mv-line);
    border-radius: 999px;
    background: #fff;
    color: var(--mv-ink);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, background-color .15s;
}

.mv-product-chip[hidden] {
    display: none;
}

.mv-product-chip:hover {
    border-color: var(--mv-ink-2);
}

.mv-product-chip input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.mv-product-chip:has(input:focus-visible) {
    outline: 2px solid var(--mv-ink);
    outline-offset: 2px;
}

.mv-product-chip.is-selected {
    border-color: var(--mv-coral);
    background: var(--mv-coral-tint);
    box-shadow: 0 0 0 3px var(--mv-coral-soft);
}

.mv-product-chip.is-out-of-stock {
    border-style: dashed;
    background: transparent;
    color: var(--mv-muted);
}

.mv-product-chip.is-out-of-stock.is-selected {
    border-style: dashed;
}

.mv-product-chip.is-disabled {
    opacity: .5;
    cursor: not-allowed;
    text-decoration: line-through;
}

.mv-product-chip.is-disabled:hover {
    border-color: var(--mv-line);
}

/* No „Išvalyti“: a chip is changed by clicking another one (WooCommerce toggles it inline, hence !important) */
.woocommerce.mv-product-page div.product form.cart .reset_variations {
    display: none !important;
}

/* Product Add-Ons fields in the card („Kur keliaus jūsų kūriniai?“) */
.mv-product-page div.product form.cart .wc-pao-addon-container {
    margin: 0 0 16px;
}

/* The plugin's „Pasirinkite.“ shows before anything is touched; only after a change or a click on the button
   (form.mv-pao-checked, assets/product.js). */
.mv-product-page div.product form.cart:not(.mv-pao-checked) .wc-pao-validation-notice {
    display: none !important;
}

.mv-product-page div.product form.cart .wc-pao-validation-notice {
    color: #b3261e;
    font-size: 13px;
}

.mv-product-page div.product form.cart .wc-pao-addon-description {
    color: var(--mv-ink-2);
    font-size: 14px;
    line-height: 1.55;
}

.mv-product-page div.product form.cart .wc-pao-addon-description :is(p, em, i) {
    font-style: normal;
}

.mv-product-page div.product form.cart .wc-pao-addon-name {
    color: var(--mv-ink);
    font-size: 15px;
    font-weight: 700;
}

.mv-product-page div.product form.cart .wc-pao-addon-wrap select,
.mv-product-page div.product form.cart .wc-pao-addon-wrap input[type="text"],
.mv-product-page div.product form.cart .wc-pao-addon-wrap textarea {
    width: 100%;
    min-height: 44px;
    border: 1.5px solid var(--mv-line-2);
    border-radius: 22px;
    background-color: #fff;
    color: var(--mv-ink);
    font-size: 15px;
}

.mv-product-page div.product form.cart .wc-pao-addon-wrap select {
    padding: 0 40px 0 16px;
    border-radius: 999px;
}

.mv-product-page div.product form.cart #product-addons-total .product-addon-totals {
    margin: 8px 0 0;
    padding: 12px 0 0;
    border-top: 1px solid var(--mv-line-2);
}

/* Price and stock of the chosen variation */
.woocommerce.mv-product-page div.product form.cart .single_variation_wrap .woocommerce-variation:not(:empty) {
    margin: 20px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--mv-line-2);
}

.woocommerce.mv-product-page div.product form.cart .woocommerce-variation-description p {
    margin: 0 0 8px;
    font-size: 14px;
    line-height: 1.5;
}

.woocommerce.mv-product-page div.product form.cart .woocommerce-variation-price .price {
    margin: 0;
    color: var(--mv-ink);
    font-size: 20px;
    font-weight: 700;
}

/* Stock: Astra prints <p class="ast-stock-detail"><span class="ast-stock-avail">Prieinamumas:</span>
   <span class="stock in-stock">Liko 6</span></p> in place of WooCommerce's p.stock */
.woocommerce.mv-product-page div.product :is(.woocommerce-variation-availability, .summary) :is(p.stock, .ast-stock-detail) {
    margin: 6px 0 0;
    color: var(--mv-ink-2);
    font-size: 14px;
    font-weight: 500;
}

.woocommerce.mv-product-page div.product :is(.woocommerce-variation-availability, .summary) .ast-stock-detail .stock,
.woocommerce-js.mv-product-page div.product :is(.woocommerce-variation-availability, .summary) .ast-stock-detail .stock.in-stock {
    color: var(--mv-ink-2);
    font-size: 14px;
    font-weight: 600;
}

.woocommerce.mv-product-page div.product :is(.woocommerce-variation-availability, .summary) .ast-stock-avail {
    color: var(--mv-ink-2);
    font-weight: 500;
}

.woocommerce.mv-product-page div.product :is(.woocommerce-variation-availability, .summary) :is(p.stock, .stock).out-of-stock,
.woocommerce-js.mv-product-page div.product :is(.woocommerce-variation-availability, .summary) .ast-stock-detail .stock.out-of-stock {
    color: #b3261e;
}

.mv-product-page div.product form.cart .woocommerce-variation-add-to-cart {
    margin-top: 20px;
}

/* Stepper */
.woocommerce.mv-product-page div.product form.cart div.quantity {
    float: none;
    margin: 0;
}

.mv-product-page div.product form.cart .quantity.mv-product-stepper {
    display: inline-flex;
    flex: none;
    align-items: center;
    height: 48px;
    border: 1.5px solid var(--mv-line);
    border-radius: 999px;
    background: #fff;
    overflow: hidden;
}

.mv-product-page div.product form.cart .mv-product-stepper .mv-product-qty-btn {
    width: 44px;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--mv-ink);
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
    cursor: pointer;
    box-shadow: none;
}

.mv-product-page div.product form.cart .mv-product-stepper .mv-product-qty-btn:hover {
    background: var(--mv-sand);
    color: var(--mv-ink);
}

.mv-product-page div.product form.cart .mv-product-stepper .mv-product-qty-btn:disabled {
    background: transparent;
    opacity: .35;
    cursor: not-allowed;
}

.woocommerce.mv-product-page div.product form.cart .quantity input.qty {
    width: 56px;
    height: 48px;
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 1.5px solid var(--mv-line);
    border-radius: 999px;
    background: #fff;
    color: var(--mv-ink);
    font: inherit;
    font-size: 17px;
    font-weight: 600;
    text-align: center;
    box-shadow: none;
}

.woocommerce.mv-product-page div.product form.cart .mv-product-stepper input.qty {
    width: 48px;
    height: 100%;
    border: 0;
    border-right: 1px solid var(--mv-line);
    border-left: 1px solid var(--mv-line);
    border-radius: 0;
    background: transparent;
    -moz-appearance: textfield;
    appearance: textfield;
}

.mv-product-page div.product form.cart .mv-product-stepper input.qty::-webkit-inner-spin-button,
.mv-product-page div.product form.cart .mv-product-stepper input.qty::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

/* „Į krepšelį“: the site's pink pill, full width; ink on hover like the cart's buttons */
.woocommerce.mv-product-page div.product form.cart .single_add_to_cart_button,
.woocommerce-js.mv-product-page div.product form.cart .single_add_to_cart_button {
    flex: 1 1 140px;
    min-height: 48px;
    margin: 0;
    padding: 12px 24px;
    border: 0;
    border-radius: 999px;
    background: var(--mv-peach);
    color: var(--mv-ink);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    transition: background-color .15s, color .15s, opacity .15s;
}

.woocommerce.mv-product-page div.product form.cart .single_add_to_cart_button:is(:hover, :focus-visible),
.woocommerce-js.mv-product-page div.product form.cart .single_add_to_cart_button:is(:hover, :focus-visible) {
    background: var(--mv-ink);
    color: var(--mv-ground);
}

.woocommerce.mv-product-page div.product form.cart .single_add_to_cart_button:is(.disabled, :disabled),
.woocommerce-js.mv-product-page div.product form.cart .single_add_to_cart_button:is(.disabled, :disabled) {
    background: var(--mv-peach);
    color: var(--mv-ink);
    opacity: .5;
    cursor: not-allowed;
}

/* Out of stock (simple product: no form, only the stock line) */
.woocommerce.mv-product-page div.product .summary > :is(p.stock, .ast-stock-detail) {
    margin: 24px 0 0;
    font-size: 15px;
}

/* -------------------------------------------------------------------------
 * Toggles under the buying card (inc/woocommerce-product-toggles.php): the description and the „Aprašymas“ fields
 * ---------------------------------------------------------------------- */

.mv-product-page div.product .mv-acc-list {
    margin: 28px 0 0;
    border-top: 1px solid var(--mv-line);
}

.mv-product-page div.product .mv-acc {
    border-bottom: 1px solid var(--mv-line);
}

.mv-product-page div.product .mv-acc > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    box-sizing: border-box;
    min-height: 52px; /* padding included: a quiet list, still a comfortable tap target */
    padding: 10px 2px;
    color: var(--mv-ink);
    font-family: 'Work Sans', sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    list-style: none;
    cursor: pointer;
}

.mv-product-page div.product .mv-acc > summary::-webkit-details-marker {
    display: none;
}

/* + / − */
.mv-product-page div.product .mv-acc > summary::after {
    content: "";
    flex: none;
    width: 12px;
    height: 12px;
    background:
        linear-gradient(var(--mv-ink), var(--mv-ink)) center / 12px 1.5px no-repeat,
        linear-gradient(var(--mv-ink), var(--mv-ink)) center / 1.5px 12px no-repeat;
}

.mv-product-page div.product .mv-acc[open] > summary::after {
    background: linear-gradient(var(--mv-ink), var(--mv-ink)) center / 12px 1.5px no-repeat;
}

.mv-product-page div.product .mv-acc > summary:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.mv-product-page div.product .mv-acc > summary:focus-visible {
    outline: 2px solid var(--mv-ink);
    outline-offset: 2px;
}

.mv-product-page div.product .mv-acc-body {
    padding: 0 2px 16px;
    color: var(--mv-ink);
    font-size: 15px;
    line-height: 1.6;
}

.mv-product-page div.product .mv-acc-body :is(p, ul, ol) {
    margin: 0 0 .8em;
}

.mv-product-page div.product .mv-acc-body :is(ul, ol) {
    padding-left: 1.15em;
}

.mv-product-page div.product .mv-acc-body li {
    margin: 0 0 .3em;
}

.mv-product-page div.product .mv-acc-body > :last-child {
    margin-bottom: 0;
}

.mv-product-page div.product .mv-acc-body a {
    color: var(--mv-ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.mv-product-page div.product .mv-acc-body em {
    color: var(--mv-ink-2);
}

/* -------------------------------------------------------------------------
 * Description and other tabs: one under the other, each under its own heading (the tab strip is hidden)
 * ---------------------------------------------------------------------- */

.woocommerce.mv-product-page div.product .woocommerce-tabs {
    margin: 64px 0 0;
    padding: 0;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs ul.tabs {
    display: none;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs .panel {
    display: block !important; /* WooCommerce's tab script hides the inactive panels inline */
    max-width: 75ch;
    margin: 0;
    padding: 32px 0 0;
    border-top: 1px solid var(--mv-line);
    color: var(--mv-ink);
    font-size: 16px;
    line-height: 1.65;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs .panel + .panel {
    margin-top: 48px;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs .panel > h2:first-child {
    margin: 0 0 16px;
    color: var(--mv-ink);
    font-family: satoshi, 'Work Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
    text-transform: none;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs .panel p {
    margin: 0 0 .9em;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs .panel > :last-child {
    margin-bottom: 0;
}

/* „Papildoma informacija“ table (attributes that are not variation chips, weight, size) */
.woocommerce.mv-product-page div.product .woocommerce-tabs table.shop_attributes {
    margin: 0;
    border: 1px solid var(--mv-line);
    border-radius: 14px;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    overflow: hidden;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs table.shop_attributes :is(th, td) {
    padding: 12px 16px;
    border: 0;
    border-bottom: 1px solid var(--mv-line);
    background: none;
    font-size: 15px;
    font-style: normal;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs table.shop_attributes tr:last-child :is(th, td) {
    border-bottom: 0;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs table.shop_attributes th {
    width: 34%;
    color: var(--mv-ink-2);
    font-weight: 600;
}

.woocommerce.mv-product-page div.product .woocommerce-tabs table.shop_attributes td p {
    margin: 0;
    padding: 0;
}

/* -------------------------------------------------------------------------
 * „Panašūs produktai“ (and up-sells): a sand band running down to the footer, shop cards (shop.css, option B)
 * ---------------------------------------------------------------------- */

:is(.mv-product-page, .mv-lesson-product-page) div.product > section:is(.related, .up-sells).products {
    margin: 72px 0 0;
    padding: 48px 0;
    background: var(--mv-sand);
    box-shadow: 0 0 0 100vmax var(--mv-sand);
    clip-path: inset(0 -100vmax);
}

:is(.mv-product-page, .mv-lesson-product-page) div.product > section:is(.related, .up-sells).products:last-child {
    margin-bottom: -80px; /* #primary keeps an 80px bottom margin */
    padding-bottom: 80px;
}

/* The footer's rounded corners (footer.css: it slides up by --mvf-r and #content gets a ground strip of that
   height) show what is above them. When the page ends on the sand band, extend the band instead of the ground
   strip, like the shop's last section, so the corners are sand. */
body:is(.mv-product-page, .mv-lesson-product-page) #content:has(div.product > section:is(.related, .up-sells).products:last-child) {
    padding-bottom: 0;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product > section:is(.related, .up-sells).products:last-child {
    border-bottom: var(--mvf-r, 0px) solid transparent;
}

:is(.mv-product-page, .mv-lesson-product-page) div.product > section.up-sells.products + section.related.products {
    margin-top: 0;
    padding-top: 0;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells).products > h2 {
    margin: 0 0 24px;
    color: var(--mv-ink);
    font-family: satoshi, 'Work Sans', sans-serif;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.02em;
    text-transform: none;
}

/* Astra sets card display, widths and nth-child margins per breakpoint, hence the !important. */
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 40px 24px;
    margin: 0;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products::before,
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products::after {
    content: none;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product {
    display: flex !important;
    flex-direction: column;
    float: none;
    clear: none;
    width: auto !important;
    margin: 0 !important;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .astra-shop-thumbnail-wrap {
    width: 100%;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product a img {
    width: 100%;
    aspect-ratio: 1;
    margin: 0 0 12px;
    border-radius: 20px;
    object-fit: cover;
    transition: opacity .2s;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product a:hover img {
    opacity: .9;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .astra-shop-summary-wrap {
    display: flex;
    flex: 1 1 auto;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 2px 12px;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .ast-woo-product-category,
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .astra-shop-summary-wrap .button,
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .astra-shop-summary-wrap .button + .screen-reader-text {
    display: none;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .ast-loop-product__link {
    display: block;
    flex: 1 1 60%;
    min-width: 0;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .woocommerce-loop-product__title {
    margin: 0;
    color: var(--mv-ink);
    font-family: 'Work Sans', sans-serif;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    text-transform: none;
    text-wrap: balance;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .price {
    display: block;
    flex: 0 0 auto;
    margin: 0;
    color: var(--mv-ink);
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .price del {
    font-weight: 400;
    opacity: .55;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .onsale {
    top: 12px;
    right: auto;
    left: 12px;
    min-width: 0;
    min-height: 0;
    margin: 0;
    padding: 0 12px;
    border-radius: 999px;
    background: #ffd577;
    color: var(--mv-ink);
    font-size: 13px;
    font-weight: 600;
    line-height: 28px;
}

/* Subscription prefix („NUO:“, small grey caps from Astra/WCS) and „/ kas mėnesį“ on the cards */
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .price .from {
    color: var(--mv-ink-2);
    font-size: .8em;
    font-weight: 600;
    text-transform: lowercase;
    opacity: 1;
}

:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .price :is(.subscription-details, .woocommerce-price-suffix) {
    color: var(--mv-ink-2);
    font-size: 13px;
    font-weight: 500;
}

/* „Išparduota“: Astra's grey band across the photo → a small ink pill on the corner, like „Akcija“ */
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .ast-shop-product-out-of-stock {
    position: absolute;
    top: 12px;
    right: auto;
    bottom: auto;
    left: 12px;
    z-index: 2;
    width: auto;
    margin: 0;
    padding: 0 12px;
    border: 0;
    border-radius: 999px;
    background: var(--mv-ink);
    color: var(--mv-ground);
    font-size: 13px;
    font-weight: 600;
    line-height: 28px;
    letter-spacing: 0;
    text-align: left;
    text-transform: none;
    transform: none;
    opacity: 1;
}

/* Astra turns it white on the card's hover (.woocommerce-loop-product__link:hover …, more specific) */
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .woocommerce-loop-product__link:is(:hover, :focus-visible) .ast-shop-product-out-of-stock {
    background-color: var(--mv-ink);
    color: var(--mv-ground);
}

/* Sold out and on sale: the sale pill moves under the sold-out one */
:is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product.outofstock .onsale {
    top: 46px;
}

/* -------------------------------------------------------------------------
 * Tablet and phones (Astra's tablet breakpoint is 921px)
 * ---------------------------------------------------------------------- */

@media (max-width: 921px) {
    body:is(.mv-product-page, .mv-lesson-product-page).ast-plain-container #primary {
        margin-top: 32px;
        margin-bottom: 60px;
    }

    /* Tablets keep the two columns (a full-width portrait photo would push the title a screen and a half down) */
    .mv-product-page div.product .mv-product-top {
        column-gap: 32px;
    }

    :is(.mv-product-page, .mv-lesson-product-page) div.product .summary h1.product_title {
        font-size: 32px;
    }

    :is(.mv-product-page, .mv-lesson-product-page) div.product > section:is(.related, .up-sells).products:last-child {
        margin-bottom: -60px;
        padding-bottom: 60px;
    }
}

/* Narrow tablets and phones: one column, photos first */
@media (max-width: 699px) {
    .mv-product-page div.product .mv-product-top {
        grid-template-columns: minmax(0, 1fr);
    }

    .woocommerce.mv-product-page #content .ast-woocommerce-container div.product .mv-product-top > div.images,
    .woocommerce.mv-product-page #content .ast-woocommerce-container div.product .mv-product-top > .woocommerce-product-gallery {
        position: relative;
        top: auto;
        grid-row: auto;
        margin: 0 0 24px;
    }

    .woocommerce.mv-product-page #content .ast-woocommerce-container div.product .mv-product-top > div.summary {
        grid-column: 1;
        grid-row: auto;
    }
}

@media (max-width: 544px) {
    body:is(.mv-product-page, .mv-lesson-product-page).ast-plain-container #primary {
        margin-top: 20px;
    }

    .mv-product-page .wpgs-for .slick-list,
    .mv-product-page .woocommerce-product-gallery__wrapper {
        border-radius: 16px;
    }

    :is(.mv-product-page, .mv-lesson-product-page) div.product .summary h1.product_title {
        font-size: 28px;
    }

    .woocommerce:is(.mv-product-page, .mv-lesson-product-page) div.product .summary p.price {
        margin-bottom: 18px;
        font-size: 22px;
    }

    .woocommerce.mv-product-page div.product form.cart,
    .woocommerce-js.mv-product-page div.product form.cart {
        margin-right: -4px;
        margin-left: -4px;
        padding: 20px;
    }

    .woocommerce.mv-product-page div.product .woocommerce-tabs {
        margin-top: 48px;
    }

    .woocommerce:is(.mv-product-page, .mv-lesson-product-page) div.product .woocommerce-tabs .panel > h2:first-child,
    :is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells).products > h2 {
        font-size: 22px;
    }

    :is(.mv-product-page, .mv-lesson-product-page) div.product > section:is(.related, .up-sells).products {
        margin-top: 56px;
        padding: 32px 0;
    }

    /* Cards scroll sideways, like the shop's sections (#content: Astra resets the list's margin) */
    :is(.mv-product-page, .mv-lesson-product-page) #content section:is(.related, .up-sells) ul.products {
        display: flex;
        flex-wrap: nowrap;
        gap: 14px;
        margin: 0 -20px;
        padding: 0 20px 6px;
        overflow-x: auto;
        scroll-padding-inline: 20px;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    :is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products::-webkit-scrollbar {
        display: none;
    }

    :is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product {
        flex: 0 0 62%;
        scroll-snap-align: start;
    }

    :is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product a img {
        border-radius: 16px;
    }

    :is(.mv-product-page, .mv-lesson-product-page) section:is(.related, .up-sells) ul.products li.product .astra-shop-summary-wrap {
        flex: 0 0 auto;
        flex-direction: column;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 4px;
    }
}
