/* Moved from Elementor (P4): Prodotto (646) + Prodotto - Dispositivo medico (226) */
.elementor .elementor-element.dv-product-discount .dv-discount {
    padding: 5px 8px;
    font-size: 14px;
}

.elementor .elementor-element.dv-product-rating .woocommerce-review-link {
    display: flex;
    align-items: center;
}
.elementor .elementor-element.dv-product-rating .star-text {
    line-height: 1;
    transform: translateY(2px);
}

@media (max-width: 767px) {
    .elementor .elementor-element.dv-product-gallery .woocommerce-product-gallery {
        margin-bottom: 0 !important ;
    }
}

.elementor .elementor-element.dv-product-price p {
    margin: 0;
}
@media (max-width:768px) {
.elementor .elementor-element.dv-product-price .price:has(ins):has(del) {
    display: inline-flex;
    gap: 5px;
    flex-direction: row-reverse;
}
}

.elementor .elementor-element.dv-product-stores:hover svg path {
    fill: #fff
}

.elementor .elementor-element.dv-product-price-note a {
    text-decoration: underline;
}

.elementor .elementor-element.dv-product-efficacy {
    opacity: .75;
}

.elementor .elementor-element.dv-product-video {
    max-width: calc(100% + 40px) !important;
}

.elementor .elementor-element.dv-product-floating-bar {
    transform: translateY(100%);
}

body.scrolled .elementor .elementor-element.dv-product-floating-bar {
    transform: translateY(0);
}

.elementor .elementor-element.dv-product-floating-bar__formats strong {
    display: none;
}

.elementor .elementor-element.dv-product-floating-bar__price {
    min-width: 75px;
}
.elementor .elementor-element.dv-product-floating-bar__price p {
    margin: 0;
}
@media (max-width:768px) {
.elementor .elementor-element.dv-product-floating-bar__price .price:has(ins):has(del) {
    display: inline-flex;
    gap: 0px;
    flex-direction: column;
}
.elementor .elementor-element.dv-product-floating-bar__price .price del {
    font-size: 13px !important;
}
}

body:not(.is-purchasable):not(.is-purchasable) .elementor .elementor-element.dv-product-floating-bar__add-to-cart {
    display: none;
}
.elementor .elementor-element.dv-product-floating-bar__add-to-cart:has(.elementor-shortcode:empty),
.elementor .elementor-element.dv-product-floating-bar__add-to-cart:has(button.disabled) {
    display: none;
}

div.dv-floating-add-to-cart.button-hidden .is-conditional {
    display: block !important;
}
body.is-purchasable:not(.has-zero-stock) .elementor .elementor-element.dv-product-floating-bar__unavailable {
    display: none;
}

.elementor .elementor-element.dv-product-subtitle p {
    margin-bottom: 0;
}

/* Moved from Elementor (P4): Acquista Online - Farmacie (Mobile) (4059, not rendered) */
@media (max-width: 767px) {
    html .elementor .elementor-element.dv-shop-online-bar {
        position: sticky;
        bottom: 0;
        z-index: 99;
    }
}

/* Moved from Elementor (P4): Add To Cart (Desktop) (4062, not rendered) */
html .elementor .elementor-element.dv-buy-box__price p {
    margin: 0;
}



/* Hide related products if no upsell */
body:not(.elementor-editor-active):not(.has-upsells) .hide-no-upsell {
    display: none !important;
}

/* WooCommerce product gallery */
@media (min-width: 768px) {
    .product-gallery-container {
        position: sticky;
        top: 90px;
    }
}

/* WooCommerce product images slider arrows */
ul.flex-direction-nav {
    position: absolute;
    top: calc(50% - 105px);
    z-index: 10;
    left: 0;
    right: 0;
    margin: 0;
    padding: 0px;
    list-style: none;
}
li.flex-nav-prev {
    float: left;
}
li.flex-nav-next {
    float: right;
}
ul.flex-direction-nav li a {
    padding: 20px;
    display: block;
    color: var(--accent, var(--e-global-color-primary));
}
ul.flex-direction-nav li svg {
    display: block;
}
ul.flex-direction-nav li a:hover {
	text-decoration: none;
}


/* Until Flexslider finishes (images loaded, inline height set on .flex-viewport)
   the gallery slides stack to thousands of pixels, which shifts the layout and
   breaks #hash scrolling. Reserve a square box meanwhile: product images are 1:1. */
.woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image:not(:first-child) {
    display: none;
}
.woocommerce-product-gallery .flex-viewport:not([style*="height"]) {
    aspect-ratio: 1 / 1;
    overflow: hidden;
}

/* WooCommerce product images with thumbnails line */
.woocommerce div.product div.images .flex-control-thumbs li {
    width: 112px;
    padding-bottom: 12px !important;
    margin-bottom: 12px;
}
.flex-control-nav li {
    position: relative;
}
.flex-control-nav li:has(img.flex-active)::after {
    content: '';
    display: block;
    height: 3px;
    background-color: var(--accent);
    position: absolute;
    bottom: 0;
    left: 11px;
    right: 11px;
}
@media (max-width: 767px) {
    .woocommerce div.product div.images .flex-control-thumbs {
        margin-left: 5px;
    }
    .woocommerce div.product div.images .flex-control-thumbs li {
        width: 10px;
        height: 10px;
        padding: 0 !important;
        margin-left: 10px;
        border-radius: 10px;
        background-color: var(--accent);
        opacity: .5;
    }
    .woocommerce div.product div.images .flex-control-thumbs li:has(img.flex-active) {
        opacity: 1;
    }
    .woocommerce div.product div.images .flex-control-thumbs li img {
        opacity: 0 !important;
    }
    .flex-control-nav li:has(img.flex-active)::after {
        display: none;
    }
    .woocommerce div.product div.images .flex-direction-nav {
        display: none;
    }

    .woocommerce div.product div.images .flex-viewport {
        overflow: visible !important;
        margin-bottom: 20px !important;
    }
    
    .woocommerce div.product div.images .flex-viewport img {
        border-radius: 10px 10px 80px 0;
        padding-right: 10px;
    }
}

body.has-zero-price .no-price {
    display: none !important;
}

/* Add to cart */
body:not(.is-purchasable) .dv-purchasable,
body:not(.is-purchasable) .elementor-widget-woocommerce-product-add-to-cart {
    display: none !important;
}

.elementor-widget-woocommerce-product-add-to-cart:has(.elementor-product-simple .stock.out-of-stock) {
    display: none;
}

.woocommerce-variation-price,
.woocommerce div.product p.stock,
.woocommerce div.product form.cart .variations {
    display: none !important;
}

.woocommerce .quantity .qty {
    border: none;
}

/* Single product page quantity selector: minus / value / plus pill
   (uses !important to override the global Elementor kit `button` rule that
   would otherwise paint these as solid blue add-to-cart-style buttons) */
.woocommerce div.product form.cart .quantity:has(.dv-product-qty-minus) {
    display: inline-flex;
    align-items: stretch;
    vertical-align: top;
    background: #fff;
    border: 1px solid var(--e-global-color-primary);
    border-radius: 10px;
    overflow: hidden;
    margin: 0 10px 0 0;
    height: 55px;
}
.dv-product-qty-minus,
.dv-product-qty-plus {
    -webkit-appearance: none !important;
    appearance: none !important;
    border: 0 !important;
    background: #e4eaf4 !important;
    width: 42px !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    color: var(--e-global-color-primary) !important;
    cursor: pointer;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-width: 0 !important;
    text-align: center !important;
    text-transform: none !important;
    transition: background-color .2s ease;
    flex: 0 0 auto;
}
.dv-product-qty-minus:hover:not(:disabled),
.dv-product-qty-plus:hover:not(:disabled) {
    background: var(--e-global-color-bd083ed) !important;
    color: var(--e-global-color-primary) !important;
}
.dv-product-qty-minus:disabled,
.dv-product-qty-plus:disabled {
    cursor: not-allowed;
    color: var(--e-global-color-secondary   ) !important;
}
.woocommerce div.product form.cart .quantity:has(.dv-product-qty-minus) .qty {
    width: 50px;
    border: 0;
    border-radius: 0;
    border-left: 1px solid var(--e-global-color-primary);
    border-right: 1px solid var(--e-global-color-primary);
    text-align: center;
    font-size: 16px;
    background: transparent;
    color: var(--e-global-color-text);
    padding: 0;
    margin: 0;
    -moz-appearance: textfield;
    appearance: textfield;
    line-height: 1;
    font-weight: 700;
    box-shadow: none;
    height: 100%;
    flex: 0 0 auto;
}
.woocommerce div.product form.cart .quantity:has(.dv-product-qty-minus) .qty:focus {
    outline: none;
    box-shadow: none;
}
.woocommerce div.product form.cart .quantity:has(.dv-product-qty-minus) .qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity:has(.dv-product-qty-minus) .qty::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}



/* Bottoni farmacie */
body.is-purchasable:not(.has-zero-stock):not(.has-zero-price) .dv-not-purchasable {
    display: none !important;
}

/* Formato buttons */
.product-formato {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
}
.product-formato-button {
    cursor: pointer;
    background: #fff;
    color: var(--accent);
    border: 1px solid var(--accent);
    font-size: 14px;
    padding: 1px 15px;
    line-height: 1.4;
    border-radius: 20px;
    display: block;
    text-transform: none;
}
.product-formato-button.noclick {
    cursor: default;
}
.product-formato-button.active {
    background: var(--accent);
    color: var(--e-global-color-117bc47);
}
@media (max-width: 768px) {
    .product-formato > strong {
        width: 100%;
    }
}

/* Shop Online */
body:not(.has-external-urls) .shop-online-container {
    display: none;
}

.shop-online-popup-container {
    position: absolute;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    z-index: 2;
    overflow: hidden;
    pointer-events: none;
}
@media (max-width:768px) {
    .shop-online-popup-container {
        top: auto;
        bottom: calc(100% - 30px);
    }
}
.shop-online-popup-container:has(.shop-online.is-active) {
    pointer-events: all;
}


.shop-online {
    background-color: var(--e-global-color-117bc47);
    border-radius: 10px 25px 10px 0;
    border: 2px solid var(--e-global-color-117bc47);
    overflow: hidden;
    width: 100%;
    transform: translatey(-100%);
    transform-origin: top;
    transition: transform .25s ease-out;
    pointer-events: none;
}
@media (max-width:768px) {
    .shop-online {
        transform: translatey(100%);
        transform-origin: bottom;
    }
}
.shop-online.is-active {
    transform: translatey(0);
    pointer-events: auto;
}
.shop-online-button a svg {
    transition: transform .25s ease-out;
}
.shop-online-button a.is-active svg {
    transform: rotate(180deg);
}

.shop-online-button .elementor-button:not(.is-active),
.shop-online-button .elementor-button:not(.is-active):focus {
    background-color: var(--e-global-color-primary);
}
.shop-online-button .elementor-button.is-active,
.shop-online-button .elementor-button:not(.is-active):hover {
    background-color: var(--e-global-color-3472ef8);
}


.shop-online-link {
    display: block;
    background-color: var(--e-global-color-accent);
    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10.711" height="20.654" viewBox="0 0 10.711 20.654"><g id="Group_401" data-name="Group 401" transform="translate(1.412 19.243) rotate(-90)"><line id="Line_10" data-name="Line 10" x2="8.915" y2="7.887" fill="none" stroke="%23547ec1" stroke-linecap="round" stroke-width="2"/><line id="Line_11" data-name="Line 11" x1="8.915" y2="7.887" transform="translate(8.916)" fill="none" stroke="%23547ec1" stroke-linecap="round" stroke-width="2"/></g></svg>');
    background-repeat: no-repeat;
    background-size: 9px;
    background-position: center right 30px;
    padding: 16px 30px 16px 20px;
    margin-top: 2px;
    transition: background-position .2s ease-out;
}
@media (max-width:768px) {
    .shop-online-link {
        margin-top: 0px;
        margin-bottom: 2px;
    }
}
.shop-online-link:hover {
    background-position: center right 15px;
}
.shop-online-link img {
    max-height: 30px;
    width: auto;
    display: block;
}
.external-link-notice {
    background-color: var(--e-global-color-primary);
    color: var(--e-global-color-117bc47);
    font-size: 9px;
    line-height: 1.25;
    padding: 10px 30px 10px 20px;
}
/* ========================================================================
   Reviews
   ======================================================================== */

/* --- Hide unwanted plugin elements --- */
#reviews .contribution-karma,
#reviews .contribution-actions,
#reviews .contribution-flag-form,
#reviews .contribution-type-selector,
#reviews #contributions-list-title,
#reviews .product-rating-details,
#reviews > .contributions-title,
#reviews > .contributions-form-title,
#reviews #subscribe_to_replies_field {
    display: none !important;
}
/* Hide "In risposta a …" paragraph prepended to child comments */
#reviews .dv-reply-card__text > p:first-child > a[href*="#comment-"]:first-child {
    display: none;
}

.woocommerce-noreviews {
    display: none;
}


/* --- 1. Rating bar --- */
.dv-rating-bar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 24px;
    background-color: color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 10%, white);
    border-radius: 10px;
    margin-bottom: 20px;
}
.dv-rating-bar__label {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 14px;
    color: var(--e-global-color-text);
}
.dv-rating-bar__summary {
    display: flex;
    align-items: center;
    gap: 10px;
}
.dv-rating-bar__stars {
    display: flex;
    flex-direction: column;
}
.dv-rating-bar__number {
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--e-global-color-text);
}
.dv-rating-bar .star-rating,
.dv-rating-bar .star-rating::before {
    color: var(--accent, var(--e-global-color-primary)) !important;
}
.dv-rating-bar__count {
    font-size: var(--wp--preset--font-size--sm, 12px);
    color: var(--e-global-color-text);
}

/* --- 2. Review form container (collapsed bar + form body) --- */
.dv-review-form-container {
    border: 2px solid var(--accent, var(--e-global-color-primary));
    border-radius: 10px;
    margin-bottom: 30px;
    overflow: hidden;
    position: relative;
}
.dv-review-form-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 24px;
    background: #fff;
    border-radius: 8px 8px 0 0;
    transition: background-color .2s;
    position: relative;
    z-index: 1;
}

.dv-review-form-header__label {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 14px;
    color: var(--accent, var(--e-global-color-primary));
    line-height: 1.5;
}
/* Decorative header stars (shown when form is closed) and read-only "Il tuo voto" stars */
.dv-review-form-header__stars .star-rating {
    font-size: 1.6em;
    /* Scale with font-size: the global 84px width clips the larger stars */
    width: 5.4em;
}
.dv-review-form-header__stars .star-rating,
.dv-review-form-header__stars .star-rating::before {
    color: var(--accent, var(--e-global-color-primary)) !important;
}
/* Hide decorative stars once the live selector is available */
.dv-review-form-header.is-open .dv-review-form-header__stars,
.dv-review-form-container.has-interactive-stars .dv-review-form-header__stars {
    display: none;
}

/* --- 3. Review form body (expanded) --- */
.dv-review-form-body {
    padding: 0;
}
.dv-review-form-body form {
    padding: 0 !important;
    border: none !important;
}
/* Show all form fields only when form is open (override plugin field-toggler) */
.dv-review-form-container.is-open .dv-review-form-body form {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 10px 20px;
    padding: 0 24px 24px !important;
}
.dv-review-form-container:not(.is-open) .dv-review-form-body #review_author_field,
.dv-review-form-container:not(.is-open) .dv-review-form-body #review_email_field,
.dv-review-form-container:not(.is-open) .dv-review-form-body .form-row:not(.star-rating-selector),
.dv-review-form-container:not(.is-open) .dv-review-form-body .wc-product-reviews-pro-form-submit-row {
    display: none !important;
}
/* Override plugin's inline display:none on title/comment/submit rows when form is open */
.dv-review-form-container.is-open .dv-review-form-body #review_title_field,
.dv-review-form-container.is-open .dv-review-form-body #review_comment_field,
.dv-review-form-container.is-open .dv-review-form-body .wc-product-reviews-pro-form-submit-row {
    display: block !important;
}
.dv-review-form-container:not(.is-open) .dv-review-form-body .form-row {
    margin-bottom: 0 !important;
}
.dv-review-form-body .form-row {
    margin-bottom: 10px !important;
}

.dv-review-form-container .wc-product-reviews-pro-form-submit-row {
    margin-bottom: 0;
}

/* Star-rating-selector: position it inside the header row */
.dv-review-form-body .star-rating-selector {
    position: absolute;
    top: 14px;
    right: 16px;
    display: flex !important;
    align-items: center;
    gap: 10px;
    z-index: 2;
    margin: 0 !important;
    padding: 0 !important;
    background: none;
    border: none;
    width: auto !important;
}
.dv-review-form-body .star-rating-selector > label:first-of-type {
    /* Hide the "Cambia la tua valutazione / Come valuteresti" main label */
    display: none !important;
}
.dv-review-form-body .star-rating-selector > label.required_field {
    display: none !important;
}
.dv-review-form-body .star-rating-selector fieldset {
    display: flex;
    flex-direction: row-reverse;
    justify-content: flex-end;
    gap: 0;
    border: none;
    padding: 0;
    margin: 0;
}
.dv-review-form-body .star-rating-selector fieldset label.checkbox {
    font-size: 1.6em;
    cursor: pointer;
}
.dv-review-form-body .star-rating-selector fieldset label.checkbox,
.dv-review-form-body .star-rating-selector fieldset label.checkbox::before {
    color: var(--accent, var(--e-global-color-primary)) !important;
}
/* Star label text (OTTIMO, BUONO, etc.) */
.dv-review-form-body .star-label {
    font-weight: 700;
    text-transform: uppercase;
    font-size: var(--wp--preset--font-size--sm, 12px);
    letter-spacing: .015em;
    color: var(--accent, var(--e-global-color-primary));
    order: -1;
}

/* Form labels */
.dv-review-form-body .form-row > label {
    text-transform: uppercase;
    font-weight: 700;
    font-size: 14px;
    color: var(--e-global-color-text);
    margin-bottom: 6px;
    display: block;
}
/* Form inputs */
.dv-review-form-body .form-row input[type="text"],
.dv-review-form-body .form-row input[type="email"],
.dv-review-form-body .form-row textarea,
.dv-review-form-body .form-row select {
    border: 2px solid color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 40%, transparent) !important;
    background-color: var(--e-global-color-f31938b);
    border-radius: 10px !important;
    padding: 12px 15px;
    font-family: inherit;
    font-size: var(--wp--preset--font-size--md, 16px);
    width: 100%;
    box-sizing: border-box;
    transition: border-color .2s, box-shadow .2s;
}
.dv-review-form-body .form-row textarea {
    min-height: 120px;
}
.dv-review-form-body .form-row input:focus,
.dv-review-form-body .form-row textarea:focus {
    border-color: var(--accent, var(--e-global-color-primary));
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 12%, transparent) !important;
}
/* Submit button */
.dv-review-form-body .wc-product-reviews-pro-form-submit-row .button,
.dv-review-form-body .wc-product-reviews-pro-form-submit-row .update-review {
    background-color: var(--accent, var(--e-global-color-primary)) !important;
    color: #fff !important;
    text-transform: uppercase;
    font-weight: 700;
    font-size: 15px;
    padding: 20px 30px;
    border-radius: 10px 30px 30px 0;
    border: none;
    cursor: pointer;
    transition: opacity .2s;
    letter-spacing: .015em;
    margin-top: 10px;
}
.dv-review-form-body .wc-product-reviews-pro-form-submit-row .button:hover,
.dv-review-form-body .wc-product-reviews-pro-form-submit-row .update-review:hover {
    opacity: .85;
}
.dv-review-form-body .wc-product-reviews-pro-form-submit-row .button:disabled,
.dv-review-form-body .wc-product-reviews-pro-form-submit-row .update-review:disabled {
    cursor: not-allowed;
    opacity: .7;
    pointer-events: none;
    padding: 20px 30px !important;
}

@media (max-width: 768px) {
    .dv-review-form-body .wc-product-reviews-pro-form-submit-row .button,
    .dv-review-form-body .wc-product-reviews-pro-form-submit-row .update-review {
        font-size: 13px;
        padding: 15px 30px;
    }
}

/* Author + email side by side for guests */
.dv-review-form-container.is-open .dv-review-form-body #review_author_field,
.dv-review-form-container.is-open .dv-review-form-body #review_email_field {
    width: calc(50% - 10px);
}
.dv-review-form-container.is-open .dv-review-form-body #review_email_field {
    margin-left: auto !important;
}

/* --- 4. Reviews section header --- */
.dv-reviews-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    padding: 12px 24px; 
    background-color: color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 10%, white);
    border-radius: 6px;
}
.dv-reviews-header__title {
    font-weight: 700;
    text-transform: uppercase;
    font-size: 14px;
    margin: 0;
    color: var(--e-global-color-text);
}
/* Filter dropdown */
.dv-reviews-header .contributions-filter {
    display: flex;
    align-items: center;
    margin: 0;
    padding: 0;
}
.dv-reviews-header .contributions-filter .form-row {
    margin: 0;
    padding: 0;
}
.dv-reviews-header .contributions-filter select,
.dv-reviews-header #comments_filter {
    border: 1.5px solid color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 35%, transparent);
    border-radius: 8px;
    padding: 8px 14px;
    font-size: var(--wp--preset--font-size--xs, 10px);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: .015em;
    font-family: inherit;
    color: var(--e-global-color-text);
    background: #fff;
    cursor: pointer;
    appearance: auto !important;
}
.dv-reviews-header .js-clear-filters {
    display: none !important;
}

/* --- 5. Review cards --- */
#reviews .commentlist {
    list-style: none;
    padding: 0;
    margin: 0;
}
#reviews .commentlist > li {
    list-style: none;
}
.dv-review-card {
    display: flex;
    gap: 16px;
    padding: 24px 0;
    max-width: 1150px;
    margin: 0 auto;
}
/* Reset plugin avatar styles (plugin sets float/negative margins) */
.dv-review-card__avatar img,
.dv-reply-card__avatar img {
    float: none !important;
    margin: 0 !important;
    position: static !important;
}
.dv-review-card__avatar img {
    width: 56px !important;
    height: 56px !important;
    border-radius: 50%;
    object-fit: cover;
    background: #e8e8e8;
}
.dv-review-card__content {
    flex: 1;
    min-width: 0;
}
.dv-review-card__author {
    font-weight: 700;
    display: block;
    font-size: var(--wp--preset--font-size--md, 16px);
    margin-bottom: 4px;
}
.dv-review-card__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    color: var(--e-global-color-text);
    flex-wrap: wrap;
}
.dv-review-card__meta .star-rating {
    font-size: 1rem;
    transform: translateY(-2px)
}
.dv-review-card__meta .star-rating,
.dv-review-card__meta .star-rating::before {
    color: var(--accent, var(--e-global-color-primary)) !important;
}
.dv-review-card__date {
    color: var(--e-global-color-text);
}
.dv-verified-badge {
    background-color: color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 12%, white);
    color: var(--accent, var(--e-global-color-primary));
    font-size: var(--wp--preset--font-size--xs, 10px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .015em;
    padding: 2px 8px;
    border-radius: 4px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.dv-verified-badge::before {
    content: '\2713';
    font-size: 1.1em;
}
.dv-review-card__title {
    color: var(--accent, var(--e-global-color-primary));
    font-size: 16px;
    font-weight: 700;
    margin: 8px 0 6px;
    line-height: 1.6;
}

@media (max-width: 767px) {
    .dv-review-card__avatar,
    .dv-reply-card__avatar {
        display: none;
    }
}

/* --- 6. Reply / admin comment cards --- */
#reviews .commentlist .children {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    max-width: 1150px;
}
.dv-reply-card {
    display: flex;
    gap: 12px;
    padding: 18px 0 18px 66px;
    scroll-margin-top: 130px;
}
.dv-reply-card__avatar p {
    margin-bottom: 1rem;
}

.dv-reply-card__avatar img {
    width: 56px !important;
    height: 56px !important;
    border-radius: 50%;
    object-fit: cover;
    background: #e8e8e8;
}
.dv-reply-card__content {
    flex: 1;
    min-width: 0;
}
.dv-reply-card__header {
    display: flex;
    flex-direction: column;
    margin-bottom: 6px;
    font-size: 16px;
}
.dv-reply-card__header strong {
    font-weight: 700;
}
.dv-reply-card__header time {
    color: var(--e-global-color-text);
    font-size: 16px;
}
.dv-review-card__text,
.dv-review-card__text p,
.dv-reply-card__text,
.dv-reply-card__text p {
    font-size: 16px;
    color: var(--e-global-color-text);
    margin: 0;
}
.dv-review-card__text p,
.dv-reply-card__text p {
    margin-bottom: .5rem;
}
/* Admin replies: name + text in accent color */
.dv-reply-card--admin .dv-reply-card__header strong,
.dv-reply-card--admin .dv-reply-card__text,
.dv-reply-card--admin .dv-reply-card__text p {
    color: var(--accent, var(--e-global-color-primary));
}

/* --- 6b. Reply comment form --- */
#reviews .form-contribution_comment {
    margin: 8px 0 16px 66px;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 8px;
    background: transparent;
    transition: border-color .25s, background-color .25s;
}
/* "Rispondi" header via pseudo-element */
#reviews .form-contribution_comment::before {
    content: 'Rispondi';
    display: block;
    font-weight: 700;
    text-transform: uppercase;
    font-size: var(--wp--preset--font-size--xs, 10px);
    letter-spacing: .015em;
    color: var(--e-global-color-text);
    margin-bottom: 10px;
}
/* Hide label — "Rispondi" pseudo replaces it */
#reviews .form-contribution_comment .form-row > label {
    display: none;
}
/* Hide submit row when collapsed, show when expanded */
#reviews .form-contribution_comment:not(.is-expanded) .wc-product-reviews-pro-form-submit-row {
    display: none !important;
}
#reviews .form-contribution_comment textarea {
    border: 1.5px solid color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 40%, transparent);
    border-radius: 8px;
    padding: 12px 15px;
    font-family: inherit;
    font-size: var(--wp--preset--font-size--md, 16px);
    width: 100%;
    box-sizing: border-box;
    transition: border-color .2s, box-shadow .2s;
    resize: vertical;
}
#reviews .form-contribution_comment textarea:focus {
    border-color: var(--accent, var(--e-global-color-primary));
    outline: none;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 12%, transparent);
}
#reviews .form-contribution_comment #subscribe_to_replies_field {
    display: none !important;
}
#reviews .form-contribution_comment .wc-product-reviews-pro-form-submit-row {
    margin-top: 22px;
}
#reviews .form-contribution_comment .wc-product-reviews-pro-form-submit-row .button {
    background-color: var(--accent, var(--e-global-color-primary)) !important;
    color: #fff !important;
    text-transform: uppercase;
    font-weight: 700;
    font-size: var(--wp--preset--font-size--sm, 12px);
    padding: 10px 24px;
    border-radius: 25px 50px 50px 0;
    border: none;
    cursor: pointer;
    letter-spacing: .015em;
    transition: opacity .2s;
}
#reviews .form-contribution_comment .wc-product-reviews-pro-form-submit-row .button:hover {
    opacity: .85;
}
#reviews .form-contribution_comment .wc-product-reviews-pro-form-submit-row .button:disabled {
    cursor: not-allowed;
    opacity: .7;
    pointer-events: none;
}
@media (max-width: 767px) {
    #reviews .form-contribution_comment {
        margin-left: 20px;
    }
}

/* --- 7. Separators between top-level reviews --- */
#reviews .commentlist > li + li {
    border-top: 2px solid var(--accent, var(--e-global-color-primary));
}

/* --- 8. Pagination --- */
#reviews .woocommerce-pagination {
    margin-top: 24px;
    text-align: center;
}
#reviews .woocommerce-pagination ul {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    list-style: none;
    padding: 0;
    margin: 0;
}
#reviews .woocommerce-pagination li {
    list-style: none;
}
#reviews .woocommerce-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1.5px solid color-mix(in srgb, var(--accent, var(--e-global-color-primary)) 30%, transparent);
    color: var(--e-global-color-text);
    font-size: var(--wp--preset--font-size--sm, 12px);
    text-decoration: none;
    transition: all .2s ease;
}
#reviews .woocommerce-pagination .page-numbers.current,
#reviews .woocommerce-pagination .page-numbers:hover {
    background-color: var(--accent, var(--e-global-color-primary));
    border-color: var(--accent, var(--e-global-color-primary));
    color: #fff;
}
#reviews .woocommerce-pagination .prev,
#reviews .woocommerce-pagination .next {
    border: none;
    font-size: 1.2em;
}

/* --- 9. Responsive --- */
@media (max-width: 767px) {
    .dv-rating-bar {
        gap: 10px;
    }
    .dv-rating-bar__summary {
        justify-content: center;
    }
    .dv-reviews-header {
        gap: 10px;
        padding: 12px 16px;
    }
    .dv-review-card__meta {
        flex-wrap: wrap;
    }
    .dv-reply-card {
        padding-left: 20px;
        padding-top: 0;
    }
    .dv-review-form-container.is-open .dv-review-form-body #review_author_field,
    .dv-review-form-container.is-open .dv-review-form-body #review_email_field {
        width: 100%;
    }
    .dv-review-form-container.is-open .dv-review-form-body form {
        padding: 0 16px 10px !important;
    }
}
@media (max-width: 480px) {
    .dv-review-form-header {
        text-align: center;
        justify-content: center;
        padding-top: 16px;
        padding-bottom: 59px;
    }
    .dv-review-form-body .form-contribution::before,
    .dv-review-form-body .form-contribution .form-row::before  {
        display: none !important;
    }
    .dv-review-form-body .star-rating-selector {
        top: 35px;
        left: 50%;
        transform: translatex(-50%);
        right: auto;
        flex-direction: column-reverse;
        gap: 6px;
    }
    .dv-review-form-container.is-open .dv-review-form-body form {
        padding-top: 20px;
    }
}




