/*
Theme Name: Delpho PB
Theme URI: https://imbiolab.it
Author: Paolo Bianchi
Author URI: https://paolobianchi.it
Description: Tema WordPress/WooCommerce per laboratorio di analisi. Ottimizzato SEO, performance, accessibilità.
Version: 1.0.1
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: delpho_pb
Domain Path: /languages
Tags: e-commerce, custom-menu, featured-images, theme-options, translation-ready, accessibility-ready
WC requires at least: 8.0
WC tested up to: 9.5
*/

/* ==========================================================================
   CSS Custom Properties – Typography
   --p-font-size: 16px su mobile, 18px su desktop (clamp fluid 375→1440px)
   ========================================================================== */
:root {
    --p-font-size: clamp(1rem, 0.956rem + 0.188vw, 1.125rem);
    --p-line-height: 1.875;
}

/* ==========================================================================
   Esami page – service-card body extension
   ========================================================================== */
.service-card--esame .service-card__inner {
    display: flex;
    flex-direction: column;
}
.service-card__body {
    padding: 20px 25px 25px;
    text-align: center;
}
.service-card__text {
    font-size: 15px;
    line-height: 1.6;
    color: var(--laboix-text, #6c6f73);
    margin-bottom: 12px;
}
.service-card__price {
    font-size: 22px;
    font-weight: 700;
    color: var(--laboix-base, #0ea5e9);
    margin-bottom: 16px;
}
.service-card__cta {
    margin-top: auto;
}
.service-card__cta__btn {
    display: inline-block;
    width: 100%;
    text-align: center;
}

/* Spacing for esami listing section */
.service-page--esami {
    padding: 80px 0 100px;
}

/* ==========================================================================
   WooCommerce – Shop page (product grid)
   ========================================================================== */
.products-page {
    padding: 80px 0 100px;
}
.products-page__toolbar {
    display: none;
}
.products-page__pagination {
    margin-top: 40px;
}
.products-page__sidebar .widget {
    margin-bottom: 30px;
}

/* Product card */
.product-card {
    margin-bottom: 30px;
}
.product-card__inner {
    background: #fff;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,.06);
    transition: box-shadow .3s ease, transform .3s ease;
}
.product-card__inner:hover {
    box-shadow: 0 8px 30px rgba(0,0,0,.12);
    transform: translateY(-4px);
}
.product-card__thumb {
    position: relative;
    overflow: hidden;
}
.product-card__thumb a {
    display: block;
}
.product-card__img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform .4s ease;
}
.product-card__inner:hover .product-card__img {
    transform: scale(1.05);
}
.product-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    display: inline-block;
    padding: 4px 12px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    border-radius: 4px;
    color: #fff;
    z-index: 2;
}
.product-card__badge--sale {
    background: var(--laboix-base, #0ea5e9);
}
.product-card__badge--featured {
    background: #f59e0b;
    top: 12px;
    left: auto;
    right: 12px;
}
.product-card__actions {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 12px;
    background: linear-gradient(transparent, rgba(0,0,0,.3));
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .3s ease, transform .3s ease;
    text-align: center;
}
.product-card__inner:hover .product-card__actions {
    opacity: 1;
    transform: translateY(0);
}
.product-card__actions .button,
.product-card__actions .added_to_cart {
    display: inline-block;
    padding: 8px 20px;
    background: var(--laboix-base, #0ea5e9);
    color: #fff;
    border: none;
    border-radius: 5px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: background .2s;
}
.product-card__actions .button:hover {
    background: var(--laboix-black, #212529);
}
.product-card__content {
    padding: 18px 20px 22px;
}
.product-card__category {
    font-size: 13px;
    color: var(--laboix-base, #0ea5e9);
    margin-bottom: 4px;
}
.product-card__category a {
    color: inherit;
    text-decoration: none;
}
.product-card__title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 8px;
    line-height: 1.3;
}
.product-card__title a {
    color: var(--laboix-black, #212529);
    text-decoration: none;
    transition: color .2s;
}
.product-card__title a:hover {
    color: var(--laboix-base, #0ea5e9);
}
.product-card__price {
    font-size: 17px;
    font-weight: 700;
    color: var(--laboix-base, #0ea5e9);
}
.product-card__price del {
    color: #999;
    font-weight: 400;
    font-size: 14px;
    margin-right: 6px;
}
.product-card__price ins {
    text-decoration: none;
}
.product-card__rating {
    margin-top: 6px;
}
.product-card__rating .star-rating {
    font-size: 13px;
}

/* WC default product list override */
ul.products {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0 -15px;
}
ul.products li.product {
    padding: 0 15px;
    list-style: none;
}

/* ==========================================================================
   WooCommerce – Single product (aliasing WC → laboix product-details)
   Gli stili principali sono già in laboix.css (.product-details*).
   Qui mappiamo l'output WC sulle classi laboix.
   ========================================================================== */

/* Padding ridotto rispetto al default laboix (120px → 60px) */
section.product-details {
    padding: 60px 0;
}
@media (max-width: 991px) {
    section.product-details { padding: 50px 0; }
}
@media (max-width: 767px) {
    section.product-details { padding: 40px 0; }
}

/* Gallery WC dentro .product-details__img */
.product-details__img .woocommerce-product-gallery {
    width: 100% !important;
    margin: 0;
    float: none;
}
.product-details__img .woocommerce-product-gallery .flex-viewport,
.product-details__img .woocommerce-product-gallery .woocommerce-product-gallery__image {
    width: 100%;
}
.product-details__img .woocommerce-product-gallery .woocommerce-product-gallery__trigger { display: none; }
.product-details__img .onsale { display: none; }

/* .product-details__top (titolo + prezzo) - wrapper aggiunto via hook */
.product-details .product-details__top {
   display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 0;
    flex-direction: column;
    align-content: flex-start;
}

/* Titolo: alias WC .product_title → product-details__title */
.product-details .product_title.entry-title {
    margin-bottom: 5px;
    color: var(--laboix-base, #021936);
    font-size: 40px;
    font-weight: 700;
    line-height: normal;
}
@media (max-width: 991px) {
    .product-details .product_title.entry-title { font-size: 30px; }
}

/* Prezzo: alias WC .price → product-details__price */
.product-details__content .price {
    margin: 0;
    color: var(--laboix-secondary, #0EBD66);
    font-size: 24px;
    font-weight: 700;
    line-height: normal;
}

/* Rating: alias WC .star-rating → product-details__review */
.product-details .woocommerce-product-rating {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 15px;
    margin-bottom: 0;
}
.product-details .woocommerce-product-rating .star-rating {
    color: var(--laboix-secondary, #0EBD66);
    font-size: 14px;
}
.product-details .woocommerce-product-rating .woocommerce-review-link {
    color: var(--laboix-text, #6A6A6A);
    font-size: 16px;
    font-weight: 500;
    text-decoration: none;
    transition: color 500ms ease;
}
.product-details .woocommerce-product-rating .woocommerce-review-link:hover {
    color: var(--laboix-secondary, #0EBD66);
}

/* Excerpt: alias WC short-description → product-details__excerpt-text1 */
.product-details .product-details__excerpt .woocommerce-product-details__short-description,
.product-details .product-details__excerpt .woocommerce-product-details__short-description p {
    color: var(--laboix-text, #6A6A6A);
    font-size: var(--p-font-size);
    font-weight: 500;
    line-height: var(--p-line-height);
    margin-bottom: 10px;
}
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product p.price, .woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product span.price {
    color: #20763D;
}

/* Add-to-cart: quantità + bottone sulla stessa riga
   Per prodotti variabili il container è .woocommerce-variation-add-to-cart,
   per prodotti semplici è form.cart direttamente */
.woocommerce .product-details__content form.cart,
.woocommerce .product-details__content .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 10px;
    margin-top: 0px;
}
/* Specificità aumentata con .woocommerce per battere woocommerce.css */
.woocommerce .product-details__content .single_add_to_cart_button,
.woocommerce .product-details__content button.button.alt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 60px;
    padding: 0 40px;
    font-size: 14px;
    font-weight: 700;
    text-transform: none;
    color: var(--laboix-white, #fff) !important;
    background-color: var(--laboix-secondary, #0EBD66) !important;
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: all 500ms ease;
    letter-spacing: 1px;
    white-space: nowrap;
    opacity: 1 !important;
}
.woocommerce .product-details__content .single_add_to_cart_button:hover,
.woocommerce .product-details__content button.button.alt:hover {
    background-color: var(--laboix-base, #021936) !important;
    color: var(--laboix-white, #fff) !important;
}
/* Stato disabled: mantiene colore ma riduce opacità */
.woocommerce .product-details__content .single_add_to_cart_button.disabled,
.woocommerce .product-details__content button.button.alt.disabled {
    background-color: var(--laboix-secondary, #0EBD66) !important;
    opacity: 0.55 !important;
    cursor: not-allowed;
}

/* Quantity box: stessa altezza del bottone, no margin extra */
.product-details__content .product-details__quantity {
    margin-bottom: 0;
}
.product-details__content form.cart .quantity-box,
.product-details__content .woocommerce-variation-add-to-cart .quantity-box {
    display: flex;
    align-items: center;
    height: 60px;
    border: 1px solid var(--laboix-border-color, #DBDBDB);
}
.product-details__content form.cart .quantity-box input,
.product-details__content .woocommerce-variation-add-to-cart .quantity-box input {
    height: 60px;
    width: 60px;
    text-align: center;
    border: none;
    border-left: 1px solid var(--laboix-border-color, #DBDBDB);
    border-right: 1px solid var(--laboix-border-color, #DBDBDB);
    font-size: 16px;
    font-weight: 600;
    outline: none;
    background: transparent;
}
.product-details__content form.cart .quantity-box .sub,
.product-details__content form.cart .quantity-box .add,
.product-details__content .woocommerce-variation-add-to-cart .quantity-box .sub,
.product-details__content .woocommerce-variation-add-to-cart .quantity-box .add {
    width: 46px;
    height: 60px;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 12px;
    color: var(--laboix-base, #021936);
    transition: color 300ms ease;
}
.product-details__content form.cart .quantity-box .sub:hover,
.product-details__content form.cart .quantity-box .add:hover,
.product-details__content .woocommerce-variation-add-to-cart .quantity-box .sub:hover,
.product-details__content .woocommerce-variation-add-to-cart .quantity-box .add:hover {
    color: var(--laboix-secondary, #0EBD66);
}

/* Meta (SKU, categorie, tag) */
.product-details__content .product_meta {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--laboix-border-color, #DBDBDB);
    font-size: 14px;
    color: var(--laboix-text, #6A6A6A);
}
.product-details__content .product_meta > span { display: block; margin-bottom: 6px; }
.product-details__content .product_meta a {
    color: var(--laboix-secondary, #0EBD66);
    text-decoration: none;
}

/* Sezioni sotto il prodotto */

/* Description piatta: alias paragrafi → product-details__description__text */
.product-details .product-details__description p {
    color: var(--laboix-text, #6A6A6A);
    font-size: var(--p-font-size);
    font-weight: 500;
    line-height: var(--p-line-height);
}

/* Reviews wrapper aliasing */
.product-details .product-details__comment-wrap {
    border-top: 1px solid var(--laboix-border-color, #DBDBDB);
    margin: 30px 0 0;
    padding: 30px 0 0;
}
@media (min-width: 768px) {
    .product-details .product-details__comment-wrap {
        margin: 44px 0 0;
        padding: 43px 0 0;
    }
}
.product-details .product-details__comment-wrap #reviews h2 {
    margin-bottom: 22px;
    color: var(--laboix-base, #021936);
    font-size: 30px;
    font-weight: 700;
    line-height: normal;
}
.product-details .product-details__comment-wrap .commentlist {
    list-style: none;
    padding: 0;
    margin: 0;
}
.product-details .product-details__comment-wrap .commentlist .comment {
    position: relative;
    padding: 11px 0 30px 200px;
    margin-bottom: 30px;
    min-height: 166px;
    border-bottom: 1px solid var(--laboix-border-color, #DBDBDB);
}
@media (max-width: 767px) {
    .product-details .product-details__comment-wrap .commentlist .comment {
        padding-left: 0;
    }
}
.product-details .product-details__comment-wrap .comment_container img.avatar {
    width: 168px;
    height: 168px;
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 50%;
    object-fit: cover;
}
@media (max-width: 767px) {
    .product-details .product-details__comment-wrap .comment_container img.avatar {
        position: relative;
        margin: 0 0 20px;
    }
}
.product-details .product-details__comment-wrap .comment-text .woocommerce-review__author {
    color: var(--laboix-base, #021936);
    font-size: 24px;
    font-weight: 700;
}
.product-details .product-details__comment-wrap .comment-text .woocommerce-review__published-date {
    margin-left: 20px;
    color: var(--laboix-secondary, #0EBD66);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 1.6px;
}
.product-details .product-details__comment-wrap .comment-text .star-rating {
    color: var(--laboix-secondary, #0EBD66);
    font-size: 17px;
    letter-spacing: 3px;
}
.product-details .product-details__comment-wrap .comment-text .description p {
    font-size: 16px;
    font-weight: 500;
    line-height: 187.5%;
    color: var(--laboix-text, #6A6A6A);
}

/* Review form aliasing */
.product-details .product-details__comment-wrap #review_form_wrapper {
    margin-top: 30px;
}
.product-details .product-details__comment-wrap #reply-title {
    font-size: 30px;
    margin-bottom: 18px;
    font-weight: bold;
    color: var(--laboix-base, #021936);
}
.product-details .product-details__comment-wrap .comment-form-rating {
    display: flex;
    align-items: center;
    letter-spacing: 6px;
    font-size: 25px;
    color: var(--laboix-secondary, #0EBD66);
    margin: 0 0 40px;
}
.product-details .product-details__comment-wrap .comment-form-rating label {
    letter-spacing: 0;
    color: var(--laboix-text, #6A6A6A);
    margin: 0 17px 0 0;
    font-size: 20px;
    font-weight: 700;
}
.product-details .product-details__comment-wrap .comment-form input[type="text"],
.product-details .product-details__comment-wrap .comment-form input[type="email"],
.product-details .product-details__comment-wrap .comment-form textarea {
    width: 100%;
    background: var(--laboix-border-color2, #F3F3F3);
    border: none;
    padding: 15px 20px;
    font-size: 16px;
    outline: none;
    margin-bottom: 20px;
}
.product-details .product-details__comment-wrap .comment-form .form-submit .submit {
    display: inline-block;
    padding: 19.5px 58px;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    color: var(--laboix-white, #fff);
    background-color: var(--laboix-base, #021936);
    border: none;
    cursor: pointer;
    transition: all 500ms ease;
    letter-spacing: 1px;
}
.product-details .product-details__comment-wrap .comment-form .form-submit .submit:hover {
    background-color: var(--laboix-secondary, #0EBD66);
}

/* Related products */
.product-details .related.products {
    margin-top: 60px;
    padding-top: 40px;
    border-top: 1px solid var(--laboix-border-color, #DBDBDB);
}
.product-details .related.products > h2 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 30px;
    color: var(--laboix-base, #021936);
}

/* ==========================================================================
   Variation Swatches (attributi come button)
   ========================================================================== */
.delpho-swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 14px;
}
.delpho-swatch-select-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    border: 0 !important;
    padding: 0 !important;
    margin: -1px !important;
}
.delpho-swatch {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 40px;
    padding: 6px 16px;
    background: #fff;
    border: 2px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--laboix-black, #212529);
    cursor: pointer;
    transition: border-color .2s, background .2s, color .2s;
    user-select: none;
}
.delpho-swatch:hover {
    border-color: var(--laboix-base, #0ea5e9);
    color: var(--laboix-base, #0ea5e9);
}
.delpho-swatch--active {
    background: var(--laboix-base, #0ea5e9);
    border-color: var(--laboix-base, #0ea5e9);
    color: #fff;
}
.delpho-swatch--active:hover {
    color: #fff;
}
.delpho-swatch--unavailable {
    opacity: .35;
    cursor: not-allowed;
    pointer-events: none;
    text-decoration: line-through;
}

/* Variations table styling */
.product-details__content .variations {
    width: 100%;
    border: none;
    margin-bottom: 16px;
}
.product-details__content .variations td,
.product-details__content .variations th {
    border: none;
    padding: 8px 0;
    vertical-align: top;
}
.product-details__content .variations .label label {
    font-size: 14px;
    font-weight: 600;
    color: var(--laboix-base, #021936);
    margin-bottom: 6px;
    display: block;
}
.product-details__content .reset_variations {
    font-size: 13px;
    color: var(--laboix-secondary, #0EBD66);
    margin-left: 8px;
}

@media (max-width: 991px) {
    .product-details__content {
        margin-top: 30px;
    }
}

/* ==========================================================================
   Service-fore – card layout fix
   ========================================================================== */

/* Card stessa altezza nella riga */
.service-fore--page .row.gutter-y-30:not(.filter-layout) {
    display: flex !important;
    flex-wrap: wrap !important;
}
.service-fore--page .row.gutter-y-30:not(.filter-layout) > [class*="col-"] {
    display: flex !important;
}
.service-fore--page .service-fore__card {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    width: 100% !important;
}
.service-fore--page .service-fore__top {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.service-fore--page .service-fore__thumb {
    margin-top: auto;
    height: 200px;
    overflow: hidden;
}
.service-fore--page .service-fore__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Icona: margine inferiore */
.service-fore--page .service-fore__icon {
    margin-bottom: 20px;
}

/* Descrizione sotto al titolo */
.service-fore__text {
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    padding: 0 10px 20px;
    text-align: center;
    opacity: 0.85;
}
.service-fore--page .service-fore__top p.service-fore__text.white {
    color: #fff !important;
}

/* ==========================================================================
   About-two – image sizing fix
   Laboix CSS relies on natural image size (570×531 + 450×385).
   ACF images can be larger, so we cap them explicitly.
   ========================================================================== */
.about-two__thumb__item img {
    max-width: 570px;
    width: 100%;
    height: auto;
    border-radius: 10px;
}
.about-two__thumb__item--two img {
    max-width: 450px;
    width: 100%;
    height: auto;
    border-radius: 10px;
}

@media (max-width: 1199px) {
    .about-two__thumb__item img {
        max-width: 100%;
    }
    .about-two__thumb__item--two img {
        max-width: 260px;
    }
}

@media (max-width: 767px) {
    .about-two__thumb__item img,
    .about-two__thumb__item--two img {
        max-width: 100%;
    }
}

/* ==========================================================================
   Service-two – lista esami card uguali
   ========================================================================== */
.service-two .row.gutter-y-30:not(.filter-layout) {
    display: flex !important;
    flex-wrap: wrap !important;
}
.service-two .row.gutter-y-30:not(.filter-layout) > [class*="col-"] {
    display: flex !important;
}
.service-two .service-two__item {
    height: 100%;
    width: 100%;
}

/* About-two – sottotitolo */
.about-two__subtitle {
    font-size: 20px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--laboix-black, #24272C);
    margin: 0 0 15px;
}

/* ==========================================================================
   WooCommerce Cart / Checkout – integrazione laboix
   ========================================================================== */

/* Neutralizza padding page-content-section su pagine cart/checkout */
.delpho-cart .page-content-section,
.delpho-checkout .page-content-section {
    padding: 0;
}
.delpho-cart .page-content-section > .container,
.delpho-checkout .page-content-section > .container {
    max-width: 100%;
    padding: 0;
}

/* WC form-row: forza larghezza piena (il grid è gestito da Bootstrap col-md-6) */
.woocommerce form .form-row-first,
.woocommerce form .form-row-last,
.woocommerce-page form .form-row-first,
.woocommerce-page form .form-row-last {
    width: 100%;
    float: none;
}

/* WooCommerce form fields dentro checkout-page__input-box */
.checkout-page__input-box .woocommerce-input-wrapper {
    display: block;
    width: 100%;
}
.checkout-page__input-box label {
    display: block;
    margin-bottom: 8px;
    color: var(--laboix-base, #021936);
    font-size: 16px;
    font-weight: 600;
}
.checkout-page__input-box label .required {
    color: var(--laboix-secondary, #0EBD66);
}
.checkout-page__input-box .select2-container {
    width: 100% !important;
}
.checkout-page__input-box .select2-container .select2-selection--single {
    height: 60px;
    border: none;
    background-color: var(--laboix-border-color2, #F3F3F3);
    padding: 0 18px;
    line-height: 60px;
    border-radius: 0;
}
.checkout-page__input-box .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 60px;
    padding: 0;
    color: var(--laboix-text, #6A6A6A);
    font-size: 16px;
    font-weight: 500;
}
.checkout-page__input-box .select2-container .select2-selection--single .select2-selection__arrow {
    height: 60px;
    right: 15px;
}

/* Cart quantity-box – forza type=text nel contesto WC */
.cart-page__table .product-details__quantity .quantity-box input {
    -moz-appearance: textfield;
    -webkit-appearance: none;
    appearance: none;
}
.cart-page__table .product-details__quantity .quantity-box input::-webkit-outer-spin-button,
.cart-page__table .product-details__quantity .quantity-box input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Payment methods list reset */
.checkout-page__payment .payment_methods {
    list-style: none;
    padding: 0;
    margin: 0;
}
.checkout-page__payment .payment_methods .input-radio {
    display: none;
}
.checkout-page__payment .place-order {
    margin-top: 20px;
}

/* WC form-row dentro checkout: reset padding/margin WC default */
.checkout-page__input-box .form-row {
    padding: 0;
    margin: 0 0 20px;
}
.checkout-page__input-box .form-row label {
    display: block;
    margin-bottom: 8px;
    color: var(--laboix-base, #021936);
    font-size: 16px;
    font-weight: 600;
}
.checkout-page__input-box .form-row label .optional {
    font-weight: 400;
    font-size: 14px;
    color: var(--laboix-text, #6A6A6A);
}
/* Input types non coperti da laboix.css */
.checkout-page__input-box input[type="number"],
.checkout-page__input-box input[type="password"] {
    height: 60px;
    width: 100%;
    border: none;
    background-color: var(--laboix-border-color2, #F3F3F3);
    padding-left: 30px;
    padding-right: 30px;
    outline: none;
    display: block;
    color: var(--laboix-text, #6A6A6A);
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
}
/* Textarea altezza custom */
.checkout-page__input-box textarea {
    height: 140px;
    padding-top: 15px;
    resize: vertical;
}
/* WC validation styles */
.checkout-page__input-box .woocommerce-invalid input,
.checkout-page__input-box .woocommerce-invalid select {
    border: 1px solid #e74c3c;
}
.checkout-page__input-box .woocommerce-validated input {
    border: 1px solid var(--laboix-secondary, #0EBD66);
}
/* Place order button */
#place_order {
    display: inline-block;
    width: 100%;
    padding: 19.5px 10px;
    font-size: 14px;
    font-weight: 700;
    color: var(--laboix-white, #fff);
    background-color: var(--laboix-base, #021936);
    border: none;
    cursor: pointer;
    transition: all 500ms ease;
    letter-spacing: 1px;
}
#place_order:hover {
    background-color: var(--laboix-secondary, #0EBD66);
}

/* Prezzo allineato a destra nella tabella riepilogo ordine */
.checkout-page__order-table .pro__price {
    text-align: right;
}

/* Checkout order button – estende la regola laboix per nionx-btn */
.checkout-page__your-order .laboix-btn {
    padding: 19px 38px;
}

/* WooCommerce notices nella pagina checkout */
.checkout-page .woocommerce-NoticeGroup,
.checkout-page .woocommerce-error,
.checkout-page .woocommerce-message,
.checkout-page .woocommerce-info {
    margin-bottom: 30px;
}

/* Cart empty state */
.cart-page .cart-empty {
    text-align: center;
    padding: 40px 0;
    font-size: 18px;
    color: var(--laboix-text, #6A6A6A);
}
.cart-page .return-to-shop .laboix-btn,
.cart-page .return-to-shop .button {
    display: inline-block;
    margin-top: 20px;
}

/* ==========================================================================
   Product FAQ – Accordion (ACF repeater)
   Stile coerente con .faq-page__accordion di laboix.css
   ========================================================================== */
.product-details__faq {
    margin: 30px 0 0;
    padding: 30px 0 0;
}
@media (min-width: 768px) {
    .product-details__faq {
        margin: 44px 0 0;
        padding: 43px 0 0;
    }
}
.product-details__faq__title {
    margin-bottom: 22px;
    color: var(--laboix-base, #021936);
    font-size: 30px;
    font-weight: 700;
    line-height: normal;
}
.product-details__faq .accordion-item {
    border: 1px solid var(--laboix-border-color, #DBDBDB);
    border-radius: 0;
    background: transparent;
}
.product-details__faq .accordion-item + .accordion-item {
    margin-top: 20px;
    border-top: 1px solid var(--laboix-border-color, #DBDBDB);
}
.product-details__faq .accordion-button {
    padding: 25px 70px 18px 30px;
    background: transparent;
    color: var(--laboix-base, #021936);
    font-size: 18px;
    font-weight: 700;
    line-height: normal;
    border-radius: 0;
    box-shadow: none;
}
.product-details__faq .accordion-button:not(.collapsed) {
    background: transparent;
    color: var(--laboix-base, #021936);
    box-shadow: none;
}
.product-details__faq .accordion-button::after {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background-color: var(--laboix-border-color2, #F3F3F3);
    background-image: none;
    flex-shrink: 0;
    position: relative;
}
.product-details__faq .accordion-button::after {
    content: "+";
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 700;
    color: var(--laboix-base, #021936);
    transition: all 500ms ease;
}
.product-details__faq .accordion-button:not(.collapsed)::after {
    content: "-";
    background-color: var(--laboix-secondary, #0EBD66);
    color: var(--laboix-white, #fff);
    transform: none;
}
.product-details__faq .accordion-body {
    padding: 3px 54px 22px 30px;
}
.product-details__faq .accordion-body p {
    color: var(--laboix-text, #6A6A6A);
    font-size: var(--p-font-size);
    font-weight: 500;
    line-height: var(--p-line-height);
    margin-bottom: 0;
    padding-bottom: 0;
}
.product-details__faq .accordion-body ul,
.product-details__faq .accordion-body ol {
    color: var(--laboix-text, #6A6A6A);
    font-size: var(--p-font-size);
    font-weight: 500;
    line-height: 187.5%;
    margin: 10px 0 0;
    padding-left: 20px;
}
.product-details__faq .accordion-body a {
    color: var(--laboix-secondary, #0EBD66);
    text-decoration: underline;
}

/* ==========================================================================
   Page Header – overlay personalizzabile da Customizer
   La custom property --ph-overlay viene iniettata inline dal template
   quando il valore è diverso dal default (0.6).
   ========================================================================== */
.page-header[style*="--ph-overlay"]::before {
    background: rgba(var(--laboix-base-rgb, 2, 25, 54), var(--ph-overlay));
}

/* ==========================================================================
   Shop – Package Card (WooCommerce overrides)
   Adatta il componente package-card al markup HTML generato da WooCommerce.
   ========================================================================== */

/* Titolo: link bianco, no underline */
.package-card__head__title a {
    color: var(--laboix-white, #fff);
    text-decoration: none;
    transition: opacity 0.3s;
}
.package-card__head__title a:hover {
    opacity: 0.85;
}

/* Prezzo WooCommerce – eredita lo stile del parent package-card__head__price */
.package-card__head__price .woocommerce-Price-amount,
.package-card__head__price .woocommerce-Price-amount bdi,
.package-card__head__price .woocommerce-Price-currencySymbol {
    color: inherit;
    font-size: inherit;
    font-weight: inherit;
    font-style: normal;
}

/* Prezzo barrato (sale) */
.package-card__head__price del {
    opacity: 0.55;
    font-size: 0.65em;
    font-weight: 400;
    display: block;
    line-height: 1;
    margin-bottom: 2px;
}
.package-card__head__price del .woocommerce-Price-amount {
    font-size: inherit;
}
.package-card__head__price ins {
    text-decoration: none;
}

/* Short description come contenuto libero (fallback senza <li>) */
.package-card__content__desc {
    color: var(--laboix-text, #6A6A6A);
    font-size: 1rem;
    font-weight: 500;
    line-height: var(--p-line-height);
    margin-bottom: 43px;
    text-align: center;
}
.package-card__content__desc p:last-child {
    margin-bottom: 0;
}

/* Prodotti in archivio: rimuove stile WC lista <ul.products> residuo */
.products-page .products {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* ==========================================================================
   Typography – paragrafo body centralizzato
   Tutti i selettori con ruolo "testo descrittivo" usano --p-font-size
   (16px mobile → 18px desktop, clamp fluid).
   NON toccare: .testimonials-two__text (30px quote), .case-studies__list__item__text
   (20px label categoria), .about-two__feature__text (14px etichetta).
   ========================================================================== */

/* Sezioni Homepage / About */
.about-two__top__text,
.about-three__top__text,
.about-three__feature__text,
.about-fore__text,
.about-fore__feature__text,

/* Video CTA */
.video-cta__text,

/* Choose Us */
.choose-us-one__top__text,
.choose-us-one__feature__text,
.choose-us-two__top__text,
.choose-us-two__text,
.why-choose-us__top__text,
.why-choose-us__feature__text,
.join-us-tow__text,

/* Our Work / Testimonials */
.our-work__item__text,
.testimonials-one__text,
.testimonials-fore__text,

/* Package card */
.package-card__content__list__item,

/* Service / Team */
.service-details__text,
.team-details__content__text,
.team-details__content__highlight__text,
.team-skills-one__text,

/* Product details (laboix.css) */
.product-details__description__text,
.product-details__comment-box__text,

/* FAQ pagina */
.faq-page__content__action__text {
    font-size: var(--p-font-size);
    line-height: var(--p-line-height);
}

/* ==========================================================================
   Contact Form 7 – override styling per .contact-one__form
   CF7 genera: <p> > <label> testo <br> <span.wpcf7-form-control-wrap> <input>
   I campi text/email/tel/textarea sono già stilizzati da laboix.css.
   Qui sistemano: spacing, label visibili, submit button, spinner, feedback.
   ========================================================================== */

/* 1. Spacing <p> wrapper CF7 */
.contact-one__form .wpcf7-form > p {
    margin: 0 0 20px;
}
.contact-one__form .wpcf7-form > p:last-of-type {
    margin-bottom: 0;
}

/* 2. Nascondi testo label (CF7 lo inserisce sopra ogni campo: sono ridondanti
      con i placeholder). Mantiene accessibilità screen-reader. */
.contact-one__form label {
    display: block;
    width: 100%;
}
.contact-one__form label br {
    display: none;
}

/* 3. Ripristina font-size dentro .wpcf7-form-control-wrap (contiene l'input) */
.contact-one__form .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
    font-size: 16px;
    line-height: normal;
}

/* 4. Submit button – stile laboix-btn (input void: no ::before/::after) */
.contact-one__form input[type=submit].wpcf7-submit {
    -webkit-appearance: none;
    appearance: none;
    display: inline-block;
    background-color: var(--laboix-secondary, #20763d);
    color: var(--laboix-white, #fff);
    border: none;
    outline: none;
    font-family: var(--laboix-font, "Lexend", sans-serif);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.125;
    padding: 19px 42px;
    cursor: pointer;
    transition: background-color 400ms, color 400ms;
    text-align: center;
    margin-top: 10px;
}
.contact-one__form input[type=submit].wpcf7-submit:hover,
.contact-one__form input[type=submit].wpcf7-submit:focus {
    background-color: var(--laboix-base, #021936);
    color: var(--laboix-white, #fff);
}
.contact-one__form input[type=submit].wpcf7-submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

/* 5. Spinner CF7 – nascosto a riposo, visibile solo durante submit */
.contact-one__form .wpcf7-spinner {
    display: none;
    vertical-align: middle;
    margin-left: 10px;
}
.contact-one__form .wpcf7-form.submitting .wpcf7-spinner {
    display: inline-block;
}

/* 6. Messaggi di risposta CF7 */
.contact-one__form .wpcf7-response-output {
    margin: 20px 0 0;
    padding: 12px 20px;
    border: none !important;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
}
.contact-one__form .wpcf7-form.sent .wpcf7-response-output {
    background-color: #e8f5e9;
    color: #1b5e20;
}
.contact-one__form .wpcf7-form.failed .wpcf7-response-output,
.contact-one__form .wpcf7-form.spam .wpcf7-response-output,
.contact-one__form .wpcf7-form.invalid .wpcf7-response-output,
.contact-one__form .wpcf7-form.unaccepted .wpcf7-response-output {
    background-color: #fdecea;
    color: #c62828;
}

/* 7. Validation tip (errore campo singolo) */
.contact-one__form .wpcf7-not-valid-tip {
    color: #c62828;
    font-size: 13px;
    font-weight: 500;
    margin-top: 6px;
    display: block;
}
.contact-one__form input.wpcf7-not-valid,
.contact-one__form textarea.wpcf7-not-valid {
    border: 2px solid #c62828 !important;
    background-color: #fff8f8 !important;
}

/* 8. Acceptance checkbox – ripristina label visibile con font normale */
.contact-one__form .wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--laboix-text, #6A6A6A);
    cursor: pointer;
}
.contact-one__form .wpcf7-acceptance input[type=checkbox] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    accent-color: var(--laboix-secondary, #20763d);
    cursor: pointer;
}

/* ── Isotope filter: override Bootstrap 5 flex su .row ─────────── */
/*
 * Bootstrap 5 .row usa display:flex. Isotope posiziona gli items in
 * position:absolute e scrive la height sul container via JS.
 * Il flex container ignora la height impostata da Isotope causando
 * il rendering errato degli items filtrati.
 * Fix: forziamo display:block sul container Isotope.
 */
.filter-layout.row {
    display: block !important;
}
.filter-layout.row > [class*="col-"] {
    margin-bottom: 30px;
}

/* ── CPT Esami – card uniforme (altezza uguale, no masonry) ─────── */
/* Annulla WOW.js sulle card esame — visibili sempre, nessun delay */
.delpho-esame-card.wow {
    visibility: visible !important;
    opacity: 1 !important;
    animation: none !important;
}

.delpho-esame-card {
    background: #fff;
    border-radius: 4px;
    box-shadow: 0 4px 24px rgba(2, 25, 54, .07);
    transition: box-shadow 300ms ease, transform 300ms ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 32px 28px 28px;
    overflow: hidden;
}
.delpho-esame-card:hover {
    box-shadow: 0 8px 40px rgba(2, 25, 54, .13);
    transform: translateY(-4px);
}

/* Icona – mantiene lo stile esagonale del tema */
.delpho-esame-card__icon {
    -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.000000 92.000000"><g transform="translate(0.000000,92.000000) scale(0.050000,-0.050000)"><path d="M1 1205 l1 -635 487 -275 c268 -151 499 -275 514 -274 15 0 243 124 507 275 l480 276 5 634 6 634 -1001 0 -1000 0 1 -635z"/></g></svg>');
    mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.000000 92.000000"><g transform="translate(0.000000,92.000000) scale(0.050000,-0.050000)"><path d="M1 1205 l1 -635 487 -275 c268 -151 499 -275 514 -274 15 0 243 124 507 275 l480 276 5 634 6 634 -1001 0 -1000 0 1 -635z"/></g></svg>');
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: top center;
    mask-position: top center;
    -webkit-mask-size: auto;
    mask-size: auto;
    width: 80px;
    height: 74px;
    background: var(--laboix-secondary, #0EBD66);
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 36px;
    color: #fff;
    margin-bottom: 20px;
    flex-shrink: 0;
    transition: background 400ms ease;
}
.delpho-esame-card:hover .delpho-esame-card__icon {
    background: var(--laboix-base, #021936);
}

/* Body – cresce per riempire lo spazio disponibile */
.delpho-esame-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
}
.delpho-esame-card__title {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--laboix-base, #021936);
    margin-bottom: 12px;
}
.delpho-esame-card__title a {
    color: inherit;
    text-decoration: none;
    transition: color 250ms ease;
}
.delpho-esame-card__title a:hover {
    color: var(--laboix-secondary, #0EBD66);
}
.delpho-esame-card__text {
    font-size: 14px;
    color: var(--laboix-text, #6A6A6A);
    line-height: 1.7;
    margin: 0;
}

/* Footer – CTA sempre in fondo */
.delpho-esame-card__footer {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--laboix-border-color, #DBDBDB);
    flex-shrink: 0;
}

/* ── CPT Esami – lista voci nella card ──────────────────────────── */
.delpho-esame__voci {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.delpho-esame__voci li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--laboix-text, #6A6A6A);
}
.delpho-esame__voci li i {
    color: var(--laboix-secondary, #0EBD66);
    font-size: 15px;
    margin-top: 2px;
    flex-shrink: 0;
}
.delpho-esame__voci .delpho-esame__voci-more {
    font-size: 13px;
    font-weight: 600;
    color: var(--laboix-secondary, #0EBD66);
    padding-left: 23px;
}
.delpho-esame__voci-title {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--laboix-base, #021936);
    margin: 14px 0 8px;
}

/* ── Esame grid: CSS Grid nativo, card di altezza uniforme ─────── */
.delpho-esame-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    align-items: stretch;
}
@media (max-width: 991px) {
    .delpho-esame-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 575px) {
    .delpho-esame-grid {
        grid-template-columns: 1fr;
    }
}
.delpho-esame-grid__item {
    display: flex;
    flex-direction: column;
    transition: opacity 250ms ease;
    opacity: 1;
}
.delpho-esame-grid__item.delpho-esame--hidden {
    display: none;
}
.delpho-esame-grid__item .delpho-esame-card,
.delpho-esame-grid__item .service-fore__card {
    flex: 1;
}

/* ==========================================================================
   Modale richiesta informazioni esame – CF7 identico a .contact-one__form
   Replica le regole di laboix.css + style.css, scope limitato al modale.
   ========================================================================== */

/* Padding modal body */
#esame-info-modal .modal-body {
    padding: 24px 28px;
}
@media (max-width: 575px) {
    #esame-info-modal .modal-body {
        padding: 16px;
    }
}

/* 1. Spacing <p> wrapper CF7 */
#esame-info-modal .modal-body .wpcf7-form > p {
    margin: 0 0 20px;
}
#esame-info-modal .modal-body .wpcf7-form > p:last-of-type {
    margin-bottom: 0;
}

/* 2. Label visibile – identica al form contatti */
#esame-info-modal .modal-body label {
    display: block;
    width: 100%;
}
#esame-info-modal .modal-body label br {
    display: none;
}

/* 3. wpcf7-form-control-wrap a piena larghezza */
#esame-info-modal .modal-body .wpcf7-form-control-wrap {
    display: block;
    width: 100%;
}

/* 4. Input e textarea – copia esatta da laboix.css (.contact-one__form) */
#esame-info-modal .modal-body input[type="date"],
#esame-info-modal .modal-body input[type="text"],
#esame-info-modal .modal-body input[type="email"],
#esame-info-modal .modal-body input[type="tel"],
#esame-info-modal .modal-body textarea {
    background-color: var(--laboix-border-color2, #F3F3F3);
    height: 60px;
    width: 100%;
    border: none;
    padding-left: 30px;
    padding-right: 20px;
    outline: none;
    color: var(--laboix-text, #6A6A6A);
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
}

/* 5. Placeholder uguale al form contatti */
#esame-info-modal .modal-body input[type="date"]::placeholder,
#esame-info-modal .modal-body input[type="text"]::placeholder,
#esame-info-modal .modal-body input[type="email"]::placeholder,
#esame-info-modal .modal-body input[type="tel"]::placeholder,
#esame-info-modal .modal-body textarea::placeholder {
    color: var(--laboix-text, #6A6A6A);
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
}

/* 6. Textarea: altezza ridotta per il contesto modale */
#esame-info-modal .modal-body textarea {
    height: 160px;
}

/* 7. Submit button */
#esame-info-modal .modal-body input[type=submit].wpcf7-submit {
    -webkit-appearance: none;
    appearance: none;
    display: inline-block;
    background-color: var(--laboix-secondary, #20763d);
    color: var(--laboix-white, #fff);
    border: none;
    outline: none;
    font-family: var(--laboix-font, "Lexend", sans-serif);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.125;
    padding: 19px 42px;
    cursor: pointer;
    transition: background-color 400ms, color 400ms;
    text-align: center;
    margin-top: 10px;
}
#esame-info-modal .modal-body input[type=submit].wpcf7-submit:hover,
#esame-info-modal .modal-body input[type=submit].wpcf7-submit:focus {
    background-color: var(--laboix-base, #021936);
    color: var(--laboix-white, #fff);
}
#esame-info-modal .modal-body input[type=submit].wpcf7-submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

/* 8. Spinner */
#esame-info-modal .modal-body .wpcf7-spinner {
    display: none;
    vertical-align: middle;
    margin-left: 10px;
}
#esame-info-modal .modal-body .wpcf7-form.submitting .wpcf7-spinner {
    display: inline-block;
}

/* 9. Messaggi di risposta CF7 */
#esame-info-modal .modal-body .wpcf7-response-output {
    margin: 20px 0 0;
    padding: 12px 20px;
    border: none !important;
    border-radius: 4px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
}
#esame-info-modal .modal-body .wpcf7-form.sent .wpcf7-response-output {
    background-color: #e8f5e9;
    color: #1b5e20;
}
#esame-info-modal .modal-body .wpcf7-form.failed .wpcf7-response-output,
#esame-info-modal .modal-body .wpcf7-form.spam .wpcf7-response-output,
#esame-info-modal .modal-body .wpcf7-form.invalid .wpcf7-response-output,
#esame-info-modal .modal-body .wpcf7-form.unaccepted .wpcf7-response-output {
    background-color: #fdecea;
    color: #c62828;
}

/* 10. Validation tip */
#esame-info-modal .modal-body .wpcf7-not-valid-tip {
    color: #c62828;
    font-size: 13px;
    font-weight: 500;
    margin-top: 6px;
    display: block;
}
#esame-info-modal .modal-body input.wpcf7-not-valid,
#esame-info-modal .modal-body textarea.wpcf7-not-valid {
    border: 2px solid #c62828 !important;
    background-color: #fff8f8 !important;
}

/* 11. Acceptance checkbox */
#esame-info-modal .modal-body .wpcf7-acceptance label {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    color: var(--laboix-text, #6A6A6A);
    cursor: pointer;
}
#esame-info-modal .modal-body .wpcf7-acceptance input[type=checkbox] {
    width: 18px;
    height: 18px;
    min-width: 18px;
    accent-color: var(--laboix-secondary, #20763d);
    cursor: pointer;
}

/* ==========================================================================
   My Account – Login / Register (laboix .login-page__* mapping)
   ========================================================================== */

/* Riduce padding sezione come per product-details */
section.login-page {
    padding: 70px 0;
}
@media (max-width: 991px) {
    section.login-page { padding: 50px 0; }
}
@media (max-width: 767px) {
    section.login-page { padding: 40px 0; }
}

/* Input text e username (WC usa type=text oltre email/password) */
.login-page__form-input-box input[type=text],
.login-page__form-input-box input[type=email],
.login-page__form-input-box input[type=password] {
    height: 60px;
    width: 100%;
    border: none;
    background-color: var(--laboix-border-color2, #F3F3F3);
    padding-left: 30px;
    padding-right: 30px;
    outline: none;
    color: var(--laboix-base, #021936);
    font-size: 15px;
    font-weight: 500;
    display: block;
    transition: background 300ms ease;
}
.login-page__form-input-box input[type=text]:focus,
.login-page__form-input-box input[type=email]:focus,
.login-page__form-input-box input[type=password]:focus {
    background-color: #e8f7ef;
    outline: none;
}
.login-page__form-input-box input::placeholder {
    color: var(--laboix-text, #6A6A6A);
    font-size: 14px;
    font-weight: 500;
}

/* Checkbox "Ricordami" – stile laboix */
.login-page__checked-box input[type=checkbox] {
    display: inline-block;
    width: 18px;
    height: 18px;
    accent-color: var(--laboix-secondary, #0EBD66);
    margin-right: 8px;
    vertical-align: middle;
    cursor: pointer;
}
.login-page__checked-box label {
    display: flex;
    align-items: center;
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    color: var(--laboix-base, #021936);
    padding-left: 0;
}

/* Bottone submit */
.login-page__form-btn-box .nionx-btn,
.login-page__form-btn-box button[type=submit] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 60px;
    padding: 0 50px;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    background-color: var(--laboix-secondary, #0EBD66);
    color: var(--laboix-white, #fff);
    border: none;
    border-radius: 0;
    cursor: pointer;
    transition: background 400ms ease, color 400ms ease;
    white-space: nowrap;
}
.login-page__form-btn-box .nionx-btn:hover,
.login-page__form-btn-box button[type=submit]:hover {
    background-color: var(--laboix-base, #021936);
    color: var(--laboix-white, #fff);
}

/* Separatore verticale tra login e register (su desktop) */
.login-page__wrap.form__border {
    position: relative;
}
@media (min-width: 992px) {
    .login-page__wrap.form__border::after {
        display: block;
        position: absolute;
        top: 0;
        right: -47px;
        content: "";
        width: 1px;
        height: 100%;
        background: var(--laboix-border-color, #DBDBDB);
    }
}

/* Notifiche WC dentro il form */
.login-page .woocommerce-error,
.login-page .woocommerce-message,
.login-page .woocommerce-info {
    margin-bottom: 24px;
    padding: 14px 20px;
    font-size: 14px;
    border-left-width: 4px;
    border-left-style: solid;
    background: var(--laboix-border-color2, #F3F3F3);
}
.login-page .woocommerce-error   { border-color: #e00; color: #c00; }
.login-page .woocommerce-message { border-color: var(--laboix-secondary, #0EBD66); color: var(--laboix-base, #021936); }
.login-page .woocommerce-info    { border-color: var(--laboix-base, #021936); color: var(--laboix-base, #021936); }

/* ==========================================================================
   My Account – Dashboard (area loggata)
   ========================================================================== */

.delpho-account-page {
    padding: 70px 0;
}
@media (max-width: 991px) { .delpho-account-page { padding: 50px 0; } }
@media (max-width: 767px) { .delpho-account-page { padding: 40px 0; } }

/* Layout flex sidebar + main */
.delpho-account__wrap {
    display: flex !important;
    flex-direction: row !important;
    gap: 40px;
    align-items: flex-start;
}
@media (max-width: 991px) {
    .delpho-account__wrap { flex-direction: column !important; gap: 30px; }
}

/* Sidebar – larghezza fissa */
.delpho-account__sidebar {
    flex: 0 0 240px !important;
    width: 240px !important;
    min-width: 240px !important;
}
@media (max-width: 991px) {
    .delpho-account__sidebar {
        flex: 0 0 auto !important;
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* Main – occupa il resto */
.delpho-account__main {
    flex: 1 1 auto !important;
    min-width: 0;
    background: var(--laboix-white, #fff);
    border: 1px solid var(--laboix-border-color, #DBDBDB);
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
    padding: 36px 40px;
}
@media (max-width: 767px) {
    .delpho-account__main { padding: 24px 20px; }
}

/* ---- Nav sidebar: override woocommerce-layout.css (.woocommerce-account width:30% float:left) ---- */
.woocommerce-account .delpho-account__sidebar .woocommerce-MyAccount-navigation,
.delpho-account__sidebar .woocommerce-MyAccount-navigation {
    width: 100% !important;
    float: none !important;
    background: var(--laboix-white, #fff);
    border: 1px solid var(--laboix-border-color, #DBDBDB);
    box-shadow: 0 4px 24px rgba(0,0,0,.05);
    margin: 0 !important;
    padding: 0 !important;
}
.delpho-account__sidebar .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.delpho-account__sidebar .woocommerce-MyAccount-navigation ul li {
    border-bottom: 1px solid var(--laboix-border-color, #DBDBDB);
    margin: 0;
    padding: 0;
}
.delpho-account__sidebar .woocommerce-MyAccount-navigation ul li:last-child {
    border-bottom: none;
}
.delpho-account__sidebar .woocommerce-MyAccount-navigation ul li a {
    display: block !important;
    width: 100% !important;
    padding: 15px 24px !important;
    font-size: 14px;
    font-weight: 600;
    color: var(--laboix-base, #021936);
    text-decoration: none;
    transition: all 300ms ease;
    border-left: 3px solid transparent;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
}
.delpho-account__sidebar .woocommerce-MyAccount-navigation ul li a:hover {
    color: var(--laboix-secondary, #0EBD66);
    background: #f7fdf9;
    border-left-color: var(--laboix-secondary, #0EBD66);
}
.delpho-account__sidebar .woocommerce-MyAccount-navigation ul li.is-active a,
.delpho-account__sidebar .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--is-active a {
    color: var(--laboix-secondary, #0EBD66) !important;
    background: #f0faf5;
    border-left-color: var(--laboix-secondary, #0EBD66);
}

/* ---- Contenuto main ---- */
.delpho-account__main p {
    font-size: 15px;
    color: var(--laboix-text, #6A6A6A);
    line-height: 1.7;
    margin-bottom: 16px;
}
.delpho-account__main a {
    color: var(--laboix-secondary, #0EBD66);
    font-weight: 600;
    text-decoration: none;
    transition: color 300ms ease;
}
.delpho-account__main a:hover {
    color: var(--laboix-base, #021936);
}
.delpho-account__main h2,
.delpho-account__main h3 {
    color: var(--laboix-base, #021936);
    font-weight: 700;
    margin-bottom: 20px;
}
.delpho-account__main h2 { font-size: 22px; }
.delpho-account__main h3 { font-size: 18px; }

/* Override woocommerce-layout.css: width:68% float:right */
.woocommerce-account .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* Tabella ordini */
.woocommerce-orders-table,
.woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.woocommerce-orders-table th,
.woocommerce-table--order-details th {
    background: var(--laboix-base, #021936);
    color: var(--laboix-white, #fff);
    padding: 14px 16px;
    text-align: left;
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .5px;
}
.woocommerce-orders-table td,
.woocommerce-table--order-details td {
    padding: 14px 16px;
    border-bottom: 1px solid var(--laboix-border-color, #DBDBDB);
    color: var(--laboix-text, #6A6A6A);
    vertical-align: middle;
}
.woocommerce-orders-table tr:last-child td {
    border-bottom: none;
}
.woocommerce-orders-table .woocommerce-button,
.woocommerce-orders-table .button {
    display: inline-block;
    padding: 8px 20px;
    background: var(--laboix-secondary, #0EBD66);
    color: var(--laboix-white, #fff) !important;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: background 300ms ease;
}
.woocommerce-orders-table .woocommerce-button:hover,
.woocommerce-orders-table .button:hover {
    background: var(--laboix-base, #021936);
}

/* Badge stato ordine */
.woocommerce-orders-table mark.order-status {
    background: transparent;
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .5px;
    padding: 4px 10px;
}
mark.order-status.status-processing { color: #0EBD66; background: #e8f7ef; }
mark.order-status.status-completed  { color: #021936; background: #e8ecf0; }
mark.order-status.status-cancelled  { color: #c00;    background: #fde8e8; }
mark.order-status.status-on-hold    { color: #b45309; background: #fef3c7; }
mark.order-status.status-pending    { color: #6A6A6A; background: #F3F3F3; }

/* Form edit indirizzo / profilo */
.delpho-account__main .woocommerce-address-fields input,
.delpho-account__main .woocommerce-EditAccountForm input,
.delpho-account__main .woocommerce-address-fields select,
.delpho-account__main .woocommerce-EditAccountForm select,
.delpho-account__main .woocommerce-address-fields textarea,
.delpho-account__main .woocommerce-EditAccountForm textarea {
    height: 54px;
    width: 100%;
    border: 1px solid var(--laboix-border-color, #DBDBDB);
    background: var(--laboix-border-color2, #F3F3F3);
    padding: 0 20px;
    font-size: 14px;
    font-weight: 500;
    color: var(--laboix-base, #021936);
    outline: none;
    transition: border-color 300ms ease, background 300ms ease;
    border-radius: 0;
}
.delpho-account__main .woocommerce-address-fields input:focus,
.delpho-account__main .woocommerce-EditAccountForm input:focus {
    border-color: var(--laboix-secondary, #0EBD66);
    background: #f0faf5;
}
.delpho-account__main .woocommerce-address-fields textarea,
.delpho-account__main .woocommerce-EditAccountForm textarea {
    height: auto;
    padding: 14px 20px;
}
.delpho-account__main label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: var(--laboix-base, #021936);
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: .4px;
}
.delpho-account__main .form-row {
    margin-bottom: 20px;
}
.delpho-account__main .woocommerce-Button,
.delpho-account__main button[type=submit],
.delpho-account__main .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 54px;
    padding: 0 40px;
    background: var(--laboix-secondary, #0EBD66);
    color: var(--laboix-white, #fff) !important;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    border: none;
    cursor: pointer;
    transition: background 400ms ease;
    text-decoration: none;
}
.delpho-account__main .woocommerce-Button:hover,
.delpho-account__main button[type=submit]:hover,
.delpho-account__main .button:hover {
    background: var(--laboix-base, #021936);
}

/* Bottoni WC speciali: wc-forward (sfoglia prodotti), wc-backward, link-button */
.delpho-account__main a.wc-forward,
.delpho-account__main a.wc-backward,
.delpho-account__main a.woocommerce-Button,
.woocommerce-account .delpho-account__main a.button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 54px !important;
    padding: 0 32px !important;
    background: var(--laboix-secondary, #0EBD66) !important;
    color: var(--laboix-white, #fff) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .5px !important;
    text-transform: uppercase !important;
    border: none !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: background 400ms ease !important;
}
.delpho-account__main a.wc-forward:hover,
.delpho-account__main a.wc-backward:hover,
.delpho-account__main a.woocommerce-Button:hover,
.woocommerce-account .delpho-account__main a.button:hover {
    background: var(--laboix-base, #021936) !important;
    color: var(--laboix-white, #fff) !important;
}

/* Banner info vuoto (ordini / download) */
.woocommerce-account .delpho-account__main .woocommerce-info {
    background: #f0faf5 !important;
    border-top: 3px solid var(--laboix-secondary, #0EBD66) !important;
    border-left: none !important;
    color: var(--laboix-base, #021936) !important;
    padding: 16px 20px !important;
    font-size: 15px !important;
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-bottom: 20px !important;
}
.woocommerce-account .delpho-account__main .woocommerce-info::before {
    display: none !important;
}

/* Select dropdown – coerente con input nei form account */
.delpho-account__main .woocommerce-address-fields select,
.delpho-account__main .woocommerce-EditAccountForm select {
    height: 54px !important;
    background: var(--laboix-border-color2, #F3F3F3) !important;
    border: 1px solid var(--laboix-border-color, #DBDBDB) !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    color: var(--laboix-base, #021936) !important;
    border-radius: 0 !important;
    width: 100% !important;
}

/* Titolo blocchi indirizzo (es. "Indirizzo di fatturazione") */
.delpho-account__main .woocommerce-Address-title h3 {
    font-size: 15px;
    font-weight: 700;
    color: var(--laboix-base, #021936);
    padding-bottom: 8px;
    border-bottom: 2px solid var(--laboix-secondary, #0EBD66);
    margin-bottom: 10px;
    display: inline-block;
}

/* Grid indirizzi – due colonne affiancate */
.delpho-account__main .woocommerce-Addresses {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
}
.delpho-account__main .woocommerce-Addresses .woocommerce-Address {
    flex: 1;
    min-width: 200px;
}

/* ==========================================================================
   Checkout – stile campi input/select/textarea
   ========================================================================== */

/* Input, select, textarea del checkout */
.woocommerce-checkout form.checkout .form-row input.input-text,
.woocommerce-checkout form.checkout .form-row select,
.woocommerce-checkout form.checkout .form-row textarea,
.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce #order_review .form-row input.input-text,
.woocommerce #order_review .form-row select {
    height: 54px !important;
    width: 100% !important;
    background: #F3F3F3 !important;
    border: 1px solid #DBDBDB !important;
    border-radius: 0 !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #021936 !important;
    outline: none !important;
    box-shadow: none !important;
    transition: border-color 300ms ease, background 300ms ease !important;
    appearance: auto;
}

.woocommerce-checkout form.checkout .form-row textarea,
.woocommerce form .form-row textarea {
    height: auto !important;
    padding: 14px 20px !important;
    min-height: 100px !important;
}

.woocommerce-checkout form.checkout .form-row input.input-text:focus,
.woocommerce-checkout form.checkout .form-row select:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus {
    border-color: #0EBD66 !important;
    background: #f0faf5 !important;
    outline: none !important;
}

/* Labels checkout */
.woocommerce-checkout form.checkout .form-row label,
.woocommerce form .form-row label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    color: #021936 !important;
    margin-bottom: 6px !important;
    text-transform: uppercase !important;
    letter-spacing: .4px !important;
}

/* Asterisco required */
.woocommerce-checkout form.checkout .form-row label abbr,
.woocommerce form .form-row label abbr {
    color: #e53935 !important;
    margin-left: 2px !important;
    text-decoration: none !important;
}

/* Spacing form-row */
.woocommerce-checkout form.checkout .form-row,
.woocommerce form .form-row {
    margin-bottom: 20px !important;
}

/* Sezioni */
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout .woocommerce-shipping-fields h3,
.woocommerce-checkout .woocommerce-additional-fields h3 {
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #021936 !important;
    margin-bottom: 24px !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid #0EBD66 !important;
}

/* Riepilogo ordine */
.woocommerce-checkout-review-order-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 14px !important;
}

.woocommerce-checkout-review-order-table th {
    padding: 14px 16px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    text-transform: uppercase !important;
    letter-spacing: .5px !important;
}

.woocommerce-checkout-review-order-table td {
    padding: 14px 16px !important;
    border-bottom: 1px solid #DBDBDB !important;
    color: #6A6A6A !important;
    vertical-align: middle !important;
}

.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .order-total th {
    font-weight: 700 !important;
    font-size: 16px !important;
    color: #021936 !important;
    background: #f0faf5 !important;
}

/* Fix SVG checkbox PayPal PPCP che diventa enorme senza width/height */
.ppcp-checkbox-mark,
.ppcp-save-card-checkbox-container svg {
    width: 16px !important;
    height: 16px !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
}

/* Layout label "salva carta" */
.ppcp-save-card-checkbox-container {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 13px !important;
    color: #555 !important;
    cursor: pointer !important;
    line-height: 1.4 !important;
}

.ppcp-save-card-checkbox-container input[type="checkbox"] {
    flex-shrink: 0 !important;
    width: 16px !important;
    height: 16px !important;
    margin: 0 !important;
    cursor: pointer !important;
}

/* Campi carta PayPal PPCP */
.ppcp-card-field--label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #021936 !important;
    margin-bottom: 4px !important;
    text-transform: uppercase !important;
    letter-spacing: .4px !important;
}

.ppcp-card-field--container {
    margin-bottom: 12px !important;
}

.ppcp-card-fields--container {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0 12px !important;
}

/* card number e cardholder a tutta larghezza */
.ppcp-card-fields--container .card-name-field,
.ppcp-card-fields--container .card-number-field {
    grid-column: 1 / -1 !important;
}

/* Metodi di pagamento — reset bg/padding/shadow gestito da css-overrides.php (priorità 99) */
.woocommerce-checkout #payment ul.payment_methods {
    list-style: none !important;
    margin: 0 0 16px !important;
    padding: 0 !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
    border: 1.5px solid #DBDBDB !important;
    border-radius: 6px !important;
    padding: 0 !important;
    margin-bottom: 10px !important;
    background: #fff !important;
}

.woocommerce-checkout #payment ul.payment_methods li:last-child {
    border-bottom: 1.5px solid #DBDBDB !important;
    margin-bottom: 0 !important;
}

.woocommerce-checkout #payment .payment_box {
    background: #f9fafb !important;
    border-top: 1px solid #DBDBDB !important;
    border-radius: 0 0 5px 5px !important;
    padding: 14px 18px !important;
    margin: 0 !important;
}

.woocommerce-checkout #payment .payment_method_paypal label img,
.woocommerce-checkout #payment ul.payment_methods li label {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: #021936 !important;
    cursor: pointer !important;
    padding: 14px 18px !important;
    display: block !important;
    margin: 0 !important;
}

/* Nascondi "Usa un nuovo metodo di pagamento" (SavedPaymentMethods list PPCP senza carte salvate) */
.woocommerce-SavedPaymentMethods {
    display: none !important;
}

/* Bottone conferma ordine */


.woocommerce-checkout #payment #place_order:hover {
    background: #021936 !important;
}

/* =====================================================
   SEARCH RESULTS PAGE
   ===================================================== */

.search-results-page {
    padding: 60px 0 80px;
}

.search-results-page__bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
    padding-bottom: 24px;
    border-bottom: 1px solid #EBEBEB;
    flex-wrap: wrap;
}

.search-results-page__count {
    font-size: 15px;
    color: #6B7280;
    margin: 0;
}

.search-results-page__count strong {
    color: #021936;
    font-weight: 700;
}

.search-results-page__form {
    display: flex;
    align-items: center;
    background: #F3F3F3;
    border: 1px solid #DBDBDB;
    border-radius: 40px;
    overflow: hidden;
    min-width: 280px;
}

.search-results-page__input {
    flex: 1;
    border: none !important;
    background: transparent !important;
    padding: 10px 18px !important;
    font-size: 14px !important;
    color: #021936 !important;
    outline: none !important;
    box-shadow: none !important;
    min-width: 0;
}

.search-results-page__submit {
    background: none;
    border: none;
    padding: 10px 16px;
    cursor: pointer;
    color: #021936;
    font-size: 16px;
    display: flex;
    align-items: center;
}

.search-results-page__submit:hover {
    color: #0EBD66;
}

.search-results-page__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

@media (max-width: 991px) {
    .search-results-page__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 575px) {
    .search-results-page__grid {
        grid-template-columns: 1fr;
    }
    .search-results-page__bar {
        flex-direction: column;
        align-items: flex-start;
    }
    .search-results-page__form {
        width: 100%;
    }
}

.search-card {
    background: #fff;
    border: 1px solid #EBEBEB;
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow 300ms ease, transform 300ms ease;
}

.search-card:hover {
    box-shadow: 0 8px 28px rgba(2,25,54,.09);
    transform: translateY(-3px);
}

.search-card__image {
    display: block;
    overflow: hidden;
    aspect-ratio: 16/9;
    background: #F3F3F3;
}

.search-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}

.search-card:hover .search-card__image img {
    transform: scale(1.04);
}

.search-card__body {
    padding: 20px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.search-card__badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    padding: 3px 9px;
    border-radius: 20px;
    margin-bottom: 10px;
    align-self: flex-start;
}

.search-card__badge--product {
    background: rgba(14,189,102,.12);
    color: #0a9952;
}

.search-card__badge--post {
    background: rgba(2,25,54,.08);
    color: #021936;
}

.search-card__title {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    margin: 0 0 8px;
    color: #021936;
}

.search-card__title a {
    color: inherit;
    text-decoration: none;
}

.search-card__title a:hover {
    color: #0EBD66;
}

.search-card__excerpt {
    font-size: 13px;
    color: #6B7280;
    line-height: 1.6;
    margin: 0 0 16px;
    flex: 1;
}

.search-card__cta {
    font-size: 13px;
    font-weight: 700;
    color: #0EBD66;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: gap 250ms ease;
    margin-top: auto;
}

.search-card__cta:hover {
    gap: 9px;
    color: #021936;
}

.search-results-page__pagination {
    margin-top: 48px;
    display: flex;
    justify-content: center;
}

.search-results-page__empty {
    text-align: center;
    padding: 80px 20px;
}

.search-results-page__empty__icon {
    font-size: 48px;
    color: #DBDBDB;
    display: block;
    margin-bottom: 20px;
}

.search-results-page__empty__title {
    font-size: 22px;
    font-weight: 700;
    color: #021936;
    margin-bottom: 10px;
}

.search-results-page__empty__text {
    font-size: 15px;
    color: #6B7280;
    margin-bottom: 28px;
}

/* Coupon field */
.woocommerce-checkout .woocommerce-form-coupon input[type=text] {
    height: 54px !important;
    background: #F3F3F3 !important;
    border: 1px solid #DBDBDB !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    color: #021936 !important;
    border-radius: 0 !important;
}

.woocommerce-checkout .woocommerce-form-coupon .button {
    height: 54px !important;
    padding: 0 32px !important;
    background: #021936 !important;
    color: #fff !important;
    border: none !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    border-radius: 0 !important;
    cursor: pointer !important;
}

/* Checkbox (termini, newsletter) */
.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text a,
.woocommerce-checkout .woocommerce-privacy-policy-text a {
    color: #0EBD66 !important;
    text-decoration: underline !important;
}

/* Error notices */
.woocommerce-checkout .woocommerce-error,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-info {
    border-top-color: #0EBD66 !important;
    font-size: 14px !important;
}

/* Select2 (dropdown paese/provincia) */
.woocommerce-checkout .select2-container--default .select2-selection--single {
    height: 54px !important;
    background: #F3F3F3 !important;
    border: 1px solid #DBDBDB !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 54px !important;
    color: #021936 !important;
    font-size: 14px !important;
}

.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 54px !important;
    right: 12px !important;
}

.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single {
    border-color: #0EBD66 !important;
    background: #f0faf5 !important;
}

.select2-dropdown {
    border: 1px solid #DBDBDB !important;
    border-radius: 0 !important;
}

.select2-results__option--highlighted[aria-selected] {
    background: #0EBD66 !important;
}

/* Layout checkout – padding sezione */
.woocommerce-checkout .woocommerce {
    padding: 60px 0 80px !important;
}


/* Footer - orari titolo secondario */
.footer-widget__title--secondary {
    margin-top: 20px;
    font-size: 14px;
    padding-top: 16px;
    border-top: 1px solid rgba(255,255,255,0.15);
}

/* Footer - interno telefono (badge circolare affianco al numero) */
.footer-widget__info__item--phone {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}
.footer-widget__phone-interno {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 8px;
    border-radius: 50px;
    background: var(--laboix-text-gray, #97A5B7);
    color: #ffffff;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    flex-shrink: 0;
}

/* Topbar - blocco orari doppio */
.topbar-one__hours {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: 13px;
}
.topbar-one__hours__block strong {
    font-weight: 700;
    margin-right: 3px;
}
.topbar-one__hours__sep {
    opacity: 0.5;
    font-size: 16px;
}

/* ── Card Prodotti WooCommerce (shop, archivi, blocco ACF) ── */
.delpho-products-section {
    padding: 80px 0;
}
.delpho-product-card {
    background: #fff;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 4px 24px rgba(2, 25, 54, .07);
    transition: box-shadow 300ms ease, transform 300ms ease;
    height: 100%;
    display: flex;
    flex-direction: column;
}
.delpho-product-card:hover {
    box-shadow: 0 8px 40px rgba(2, 25, 54, .13);
    transform: translateY(-4px);
}
.delpho-product-card__thumb {
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 3;
}
.delpho-product-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
    display: block;
}
.delpho-product-card:hover .delpho-product-card__thumb img {
    transform: scale(1.05);
}
.delpho-product-card__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: var(--laboix-secondary, #0EBD66);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    border-radius: 2px;
    letter-spacing: .5px;
    text-transform: uppercase;
}
.delpho-product-card__badge--featured {
    background: var(--laboix-base, #021936);
}
.delpho-product-card__body {
    padding: 20px 24px 24px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 1;
}
.delpho-product-card__title {
    font-size: 17px;
    font-weight: 700;
    margin: 0;
    line-height: 1.3;
}
.delpho-product-card__title a {
    color: var(--laboix-black, #021936);
    text-decoration: none;
    transition: color 250ms ease;
}
.delpho-product-card__title a:hover {
    color: var(--laboix-secondary, #0EBD66);
}
.delpho-product-card__excerpt {
    font-size: 14px;
    color: var(--laboix-text-gray, #97A5B7);
    line-height: 1.6;
    margin: 0;
}
.delpho-product-card__price {
    font-size: 18px;
    font-weight: 700;
    color: var(--laboix-secondary, #0EBD66);
}
.delpho-product-card__price del {
    color: var(--laboix-text-gray, #97A5B7);
    font-size: 14px;
    font-weight: 500;
    margin-right: 4px;
}
.delpho-product-card__cta {
    margin-top: auto;
    align-self: flex-start;
}
/* Override: rimuove ul.products WooCommerce residuo nella shop */
.products-page .products,
.woocommerce ul.products {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}


/* ==========================================================================
   Page Header - Single Product
   Padding ridotto rispetto al default globale (70px/70px)
   ========================================================================== */
.single-product .page-header {
    padding-top: 30px;
    padding-bottom: 30px;
}
@media (max-width: 991px) {
    .single-product .page-header {
        padding-top: 30px;
        padding-bottom: 30px;
    }
}
@media (max-width: 767px) {
    .single-product .page-header {
        padding-top: 30px;
        padding-bottom: 30px;
    }
}

/* Preloader - logo Imbiolab */
.preloader {
    background: rgba(255, 255, 255, 0.9) !important;
}
.preloader__image {
    width: 160px !important;
    height: 80px !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
}
.wc-ppcp-popup__container, .woocommerce-checkout #payment div.payment_box::before {
    display: none;
}
.checkout-page .woocommerce-checkout #payment .payment_box {
    padding: 0px!important;
}
/* Footer - legal bar */
.main-footer__bottom__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 24px;
}

.main-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    font-size: 13px;
}

.main-footer__legal a {
    color: rgba(255,255,255,.65);
    text-decoration: none;
    transition: color 250ms ease;
}

.main-footer__legal a:hover {
    color: #fff;
}

.main-footer__legal span {
    color: rgba(255,255,255,.3);
}

.main-footer__credits {
    font-size: 12px;
    color: rgba(255,255,255,.4);
    margin: 0;
    width: 100%;
    text-align: center;
    padding-top: 6px;
    border-top: 1px solid rgba(255,255,255,.08);
}

@media (max-width: 767px) {
    .main-footer__bottom__inner {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
}

/* Page header - margin bottom solo su pagine con template default */
body.page-template-default .page-header {
    margin-bottom: 80px;
}

/* ==========================================================================
   Mobile header
   Override: laboix.css nasconde .main-header__btn sotto 576px, noi lo vogliamo sempre visibile.
   Il resize a 575px riduce padding e font per schermi piccoli.
   ========================================================================== */
.main-header__btn { display: inline-flex !important; }

@media (max-width: 575px) {
    .main-header__btn { padding: 8px 14px; font-size: 13px; }
    .mobile-nav__btn { margin-left: 10px !important; }
}
@media (max-width: 420px) {
    .main-header__link { display: none !important; }
    .mobile-nav__btn { margin-left: 0 !important; }
}
.mobile-nav__cta {
    display: block !important;
    margin: 0 0 24px !important;
    text-align: center !important;
    background: #0EBD66 !important;
    color: #fff !important;
    padding: 12px 24px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-decoration: none !important;
}

/* ==========================================================================
   Cart vuoto
   ========================================================================== */
.delpho-cart-empty {
    padding: 80px 20px 100px;
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 320px;
}
.delpho-cart-empty__inner {
    max-width: 520px;
    width: 100%;
    text-align: center;
}
.delpho-cart-empty__icon {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    background: #f0faf5;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 28px;
}
.delpho-cart-empty__icon i {
    font-size: 36px;
    color: #0EBD66;
}
.delpho-cart-empty__title {
    font-size: 26px;
    font-weight: 700;
    color: #021936;
    margin: 0 0 14px;
    line-height: 1.2;
}
.delpho-cart-empty__text {
    font-size: 15px;
    color: #6A6A6A;
    line-height: 1.65;
    margin: 0 auto 36px;
    max-width: 400px;
}
.delpho-cart-empty__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}
.delpho-cart-empty__btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    height: 52px !important;
    padding: 0 28px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .4px !important;
    text-decoration: none !important;
    transition: background 350ms ease, color 350ms ease !important;
    border-radius: 0 !important;
}
.delpho-cart-empty__btn--primary {
    background: #0EBD66 !important;
    color: #fff !important;
}
.delpho-cart-empty__btn--primary:hover {
    background: #021936 !important;
    color: #fff !important;
}
.delpho-cart-empty__btn--secondary {
    background: #F3F3F3 !important;
    color: #021936 !important;
    border: 1.5px solid #DBDBDB !important;
}
.delpho-cart-empty__btn--secondary:hover {
    background: #021936 !important;
    color: #fff !important;
    border-color: #021936 !important;
}
@media (max-width: 480px) {
    .delpho-cart-empty { padding: 60px 20px 80px; }
    .delpho-cart-empty__btn { width: 100% !important; justify-content: center !important; }
    .delpho-cart-empty__actions { flex-direction: column; }
}

/* ==========================================================================
   Cart summary
   ========================================================================== */
.delpho-cart-summary {
    background: var(--laboix-border-color2, #F3F3F3);
    border-radius: 12px;
    padding: 22px 24px;
    margin-bottom: 24px;
    border: none;
}
.delpho-cart-summary__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid rgba(0,0,0,.08);
    gap: 12px;
}
.delpho-cart-summary__row:last-of-type { border-bottom: none; }
.delpho-cart-summary__label {
    font-size: 16px;
    font-weight: 600;
    color: #4a5568;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.delpho-cart-summary__pin {
    color: var(--laboix-secondary, #0EBD66);
    font-size: 14px;
    flex-shrink: 0;
}
.delpho-cart-summary__city {
    font-weight: 400;
    color: #718096;
    font-size: 14px;
}
.delpho-cart-summary__edit-address {
    font-size: 11px;
    font-weight: 500;
    color: var(--laboix-secondary, #0EBD66);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    white-space: nowrap;
}
.delpho-cart-summary__edit-address:hover { color: var(--laboix-base, #021936); }
.delpho-cart-summary__value {
    font-size: 15px;
    font-weight: 700;
    color: var(--laboix-base, #021936);
    text-align: right;
    flex-shrink: 0;
}
.delpho-cart-summary__value--shipping .woocommerce-shipping-totals,
.delpho-cart-summary__value--shipping ul,
.delpho-cart-summary__shipping-raw ul { list-style: none; margin: 0; padding: 0; }
.delpho-cart-summary__value--shipping li,
.delpho-cart-summary__shipping-raw li { list-style: none; margin: 0; }
.delpho-cart-summary__shipping-raw .shipping-calculator-button,
.delpho-cart-summary__value--shipping .shipping-calculator-button { display: none !important; }
.delpho-cart-summary__calc { padding: 0; }
.delpho-cart-summary__calc .shipping-calculator-form { display: none; }
.delpho-cart-summary__calc .shipping-calculator-form.active { display: block; }
.delpho-cart-summary__calc .shipping-calculator-button,
.cart-page__cart-total .shipping-calculator-button,
.woocommerce-shipping-calculator .shipping-calculator-button {
    color: #9aa5b4 !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
}
.delpho-cart-summary__calc .shipping-calculator-button:hover,
.woocommerce-shipping-calculator .shipping-calculator-button:hover { color: #4a5568 !important; }
.delpho-cart-summary__free {
    font-size: 13px;
    font-weight: 400;
    color: #718096;
}
.delpho-cart-summary__free-tag {
    font-size: 13px;
    font-weight: 600;
    color: var(--laboix-secondary, #0EBD66);
}
.delpho-cart-summary__row--shipping .delpho-cart-summary__label { color: #2d3748; }
.delpho-cart-summary__row--coupon .delpho-cart-summary__value { color: var(--laboix-secondary, #0EBD66); }
.delpho-cart-summary__total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 16px;
    margin-top: 4px;
    border-top: 2px solid rgba(0,0,0,.12);
    gap: 12px;
}
.delpho-cart-summary__total-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--laboix-base, #021936);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.delpho-cart-summary__total-value {
    font-size: 22px;
    font-weight: 800;
    color: var(--laboix-base, #021936);
    text-align: right;
}
.delpho-cart-summary__total-value .woocommerce-Price-amount { color: var(--laboix-secondary, #0EBD66); }
@media (max-width: 575px) {
    .delpho-cart-summary { padding: 16px 18px; }
    .delpho-cart-summary__total-value { font-size: 18px; }
}

/* ==========================================================================
   Cart badge
   ========================================================================== */
.delpho-cart-icon { position: relative; }
.delpho-cart-badge {
    position: absolute;
    top: -7px;
    right: -8px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 999px;
    background: var(--laboix-secondary, #0EBD66);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    box-shadow: 0 2px 6px rgba(14,189,102,.4);
    transition: transform 0.2s ease;
}
@keyframes delpho-badge-bump {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.5); }
    70%  { transform: scale(0.88); }
    100% { transform: scale(1); }
}
.delpho-cart-badge--bump {
    animation: delpho-badge-bump 380ms cubic-bezier(.36,.07,.19,.97);
}

/* ==========================================================================
   WooCommerce notice + checkout
   ========================================================================== */
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
    background-color: #80bda02e;
}
.woocommerce-checkout .checkout .checkout-inline-error-message {
    margin-top: 10px;
}

/* ==========================================================================
   Account WooCommerce
   ========================================================================== */
.delpho-account__main a.wc-forward,
.delpho-account__main a.wc-backward,
.delpho-account__main a.woocommerce-Button,
.woocommerce-account .delpho-account__main a.button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 54px !important;
    padding: 0 32px !important;
    background: #0EBD66 !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .5px !important;
    text-transform: uppercase !important;
    border: none !important;
    text-decoration: none !important;
    transition: background 400ms ease !important;
    border-radius: 0 !important;
}
.delpho-account__main a.wc-forward:hover,
.delpho-account__main a.wc-backward:hover,
.delpho-account__main a.woocommerce-Button:hover,
.woocommerce-account .delpho-account__main a.button:hover {
    background: #021936 !important;
    color: #fff !important;
}
.woocommerce-account .delpho-account__main .woocommerce-info {
    background: #f0faf5 !important;
    border-top: 3px solid #0EBD66 !important;
    border-left: none !important;
    color: #021936 !important;
    padding: 16px 20px !important;
    font-size: 15px !important;
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-bottom: 20px !important;
}
.woocommerce-account .delpho-account__main .woocommerce-info::before { display: none !important; }
.delpho-account__main .woocommerce-address-fields select,
.delpho-account__main .woocommerce-EditAccountForm select {
    height: 54px !important;
    background: #F3F3F3 !important;
    padding: 0 20px !important;
    font-size: 14px !important;
    color: #021936 !important;
    width: 100% !important;
}
.delpho-account__main .woocommerce-Address-title h3 {
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #021936 !important;
    padding-bottom: 8px !important;
    border-bottom: 2px solid #0EBD66 !important;
    margin-bottom: 10px !important;
    display: inline-block !important;
}
.woocommerce-MyAccount-navigation-link--downloads { display: none !important; }
