/* ==========================================================================
   Devin Flora — Override degli stili di default di WooCommerce
   Allinea bottoni, form, messaggi, prezzi e valutazioni al design system.
   ========================================================================== */

/* --- Bottoni WooCommerce -> stile .df-btn --- */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.wc-block-components-button{
  font-family: var(--df-font-sans);
  font-weight: 600;
  border: none;
  border-radius: var(--df-radius-pill);
  background: var(--df-forest-800);
  color: #fff;
  padding: 12px 22px;
  line-height: 1.1;
  text-decoration: none;
  transition: background .18s ease, transform .12s ease;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce #respond input#submit:hover,
.wc-block-components-button:hover{
  background: var(--df-forest-700);
  color: #fff;
}
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt{
  background: var(--df-clay-700);
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover{
  background: var(--df-clay-800);
}

/* --- Single add to cart --- */
.woocommerce div.product form.cart .button{
  padding: 14px 26px;
  font-size: 1rem;
}

/* --- Prezzi --- */
.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce ul.products li.product .price{
  color: var(--df-forest-900);
  font-family: var(--df-font-display);
  font-weight: 600;
}
.woocommerce .price del{ color: var(--df-stone-400); font-weight: 400; }
.woocommerce .price ins{ text-decoration: none; }

/* --- Valutazioni a stelle --- */
.woocommerce .star-rating span::before,
.woocommerce p.stars a::before{ color: var(--df-gold-500); }

/* --- Campi form --- */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce .select2-container--default .select2-selection--single,
.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,
select{
  font-family: var(--df-font-sans);
  border: 1.5px solid var(--df-stone-300);
  border-radius: var(--df-radius-sm);
  padding: 12px 14px;
  color: var(--df-ink);
  background: var(--df-paper);
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{
  outline: none;
  border-color: var(--df-forest-800);
  box-shadow: 0 0 0 3px rgba(38,70,52,.18);
}

/* --- Messaggi (info / success / error) --- */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  border-radius: var(--df-radius-md);
  border-top: none;
  padding: 14px 16px;
  font-family: var(--df-font-sans);
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap;
  gap: 8px 14px;
  overflow: hidden;
}
.woocommerce-message{ background: var(--df-forest-100); color: var(--df-forest-900); border-left: 4px solid var(--df-success); }
.woocommerce-info{ background: var(--df-sand); color: var(--df-ink); border-left: 4px solid var(--df-gold-500); }
.woocommerce-error{ background: var(--df-blush-100); color: var(--df-ink); border-left: 4px solid var(--df-error); }
/* Pulsante "Visualizza carrello": forzato a destra e dentro al riquadro, qualunque sia il tema/WooCommerce */
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button,
.woocommerce-message a.wc-forward,
.woocommerce-info a.wc-forward,
.woocommerce-error a.wc-forward{
  padding: 8px 16px;
  float: none !important;
  margin: 0 0 0 auto !important;
  order: 9;
  flex: 0 0 auto;
  align-self: center;
}

/* --- Badge "sale" --- */
.woocommerce span.onsale{
  background: var(--df-clay-700);
  color: #fff;
  border-radius: var(--df-radius-pill);
  font-family: var(--df-font-sans);
  font-weight: 600;
  min-height: auto;
  min-width: auto;
  padding: 4px 12px;
  line-height: 1.4;
}

/* --- Notice carrello --- */
.woocommerce-cart table.cart img{ border-radius: var(--df-radius-sm); }


/* ==========================================================================
   Devin Flora — Negozio, categoria e scheda prodotto
   ========================================================================== */

/* --- Contenitore pagine WooCommerce + breadcrumb --- */
.wc-main{ padding-block: clamp(28px,5vw,56px); }
.woocommerce-breadcrumb{ font-size:.85rem; color:var(--df-stone-600); margin-bottom:18px; }
.woocommerce-breadcrumb a{ color:var(--df-stone-600); text-decoration:none; }
.woocommerce-breadcrumb a:hover{ color:var(--df-forest-800); }

/* --- Intestazione archivio (titolo + descrizione categoria) --- */
.woocommerce-products-header{ margin-bottom:22px; }
.woocommerce-products-header__title,
.woocommerce div.product .product_title,
.woocommerce-Tabs-panel h2,
.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2,
.cart_totals h2,
.woocommerce-column__title{
  font-family:var(--df-font-display); color:var(--df-forest-900); line-height:1.12;
}
.woocommerce-products-header__title{ font-size:clamp(1.8rem,4vw,2.6rem); margin:0 0 8px; }
.term-description,
.woocommerce-products-header .term-description{ color:var(--df-stone-600); max-width:70ch; line-height:1.6; }

/* --- Barra conteggio / ordinamento --- */
.woocommerce .woocommerce-result-count{ color:var(--df-stone-600); font-size:.9rem; }
.woocommerce .woocommerce-ordering select{
  font-family:var(--df-font-sans); padding:8px 12px; border:1px solid var(--df-stone-300);
  border-radius:var(--df-radius-sm); background:var(--df-paper); color:var(--df-ink);
}

/* --- Griglia prodotti (negozio + correlati) --- */
.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid !important; grid-template-columns:repeat(4,1fr); gap:24px;
  margin:0 !important; padding:0 !important; list-style:none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after{ content:none !important; display:none !important; }
@media (max-width:1000px){ .woocommerce ul.products{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:720px){ .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); gap:16px; } }
@media (max-width:440px){ .woocommerce ul.products{ grid-template-columns:1fr; } }

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product{
  width:auto !important; margin:0 !important; float:none !important; clear:none !important;
  background:var(--df-paper); border:1px solid var(--df-stone-300);
  border-radius:var(--df-radius-lg); overflow:hidden; position:relative;
  display:flex; flex-direction:column;
  transition:transform .16s ease, box-shadow .16s ease;
}
.woocommerce ul.products li.product:hover{ transform:translateY(-4px); box-shadow:var(--df-shadow-md); }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{ display:flex; flex-direction:column; flex:1 1 auto; }
.woocommerce ul.products li.product img{
  margin:0 !important; border-radius:0; width:100%; aspect-ratio:1/1; object-fit:cover;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--df-font-display); font-weight:600; font-size:1.05rem; color:var(--df-ink);
  padding:14px 16px 2px; line-height:1.25;
}
.woocommerce ul.products li.product .price{ padding:0 16px; color:var(--df-forest-800); font-weight:600; font-size:1.05rem; }
.woocommerce ul.products li.product .price del{ color:var(--df-stone-400); font-weight:400; margin-right:6px; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; color:var(--df-clay-700); }
.woocommerce ul.products li.product .star-rating{ margin:8px 16px 0; font-size:.85rem; }
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{ margin:14px 16px 16px; text-align:center; }
.woocommerce ul.products li.product .button{ margin-top:auto; }
/* posizione badge offerta sulle card (colori già definiti sopra) */
.woocommerce ul.products li.product .onsale{ position:absolute; top:12px; left:12px; right:auto; margin:0; }

/* --- Scheda prodotto: due colonne --- */
.woocommerce div.product{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(24px,4vw,56px); align-items:start; position:relative;
}
.woocommerce div.product .woocommerce-product-gallery{ width:auto !important; margin:0 !important; float:none !important; }
.woocommerce div.product .summary,
.woocommerce div.product .entry-summary{ width:auto !important; margin:0 !important; float:none !important; }
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .upsells,
.woocommerce div.product .df-pstrip,
.woocommerce div.product .df-pdesc,
.woocommerce div.product .df-pcare,
.woocommerce div.product .df-pdeliv,
.woocommerce div.product .df-pbrand,
.woocommerce div.product .df-ptris{ grid-column:1 / -1; }
.woocommerce div.product .onsale{ top:14px; left:14px; }
@media (max-width:820px){ .woocommerce div.product{ grid-template-columns:1fr; } }

.woocommerce div.product .product_title{ font-size:clamp(1.6rem,3.5vw,2.3rem); margin:0 0 10px; }
.woocommerce div.product p.price,
.woocommerce div.product span.price{
  color:var(--df-forest-800); font-family:var(--df-font-display); font-weight:600; font-size:1.7rem; margin:0 0 16px;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del{ color:var(--df-stone-400); font-weight:400; font-size:1.2rem; margin-right:8px; }
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins{ text-decoration:none; color:var(--df-clay-700); }
.woocommerce div.product .woocommerce-product-details__short-description{ color:var(--df-ink); line-height:1.6; margin-bottom:18px; }

/* galleria miniature */
.woocommerce div.product .woocommerce-product-gallery img{ border-radius:var(--df-radius-md); }
.woocommerce div.product .flex-control-thumbs{ margin-top:12px; gap:10px; display:flex; padding:0; }
.woocommerce div.product .flex-control-thumbs li{ width:72px; margin:0; list-style:none; }
.woocommerce div.product .flex-control-thumbs img{ border-radius:var(--df-radius-sm); border:1px solid var(--df-stone-300); }

/* varianti */
.woocommerce div.product form.cart .variations{ margin-bottom:14px; }
.woocommerce div.product form.cart .variations th.label{ font-family:var(--df-font-sans); font-weight:600; color:var(--df-ink); vertical-align:middle; padding-right:12px; }
.woocommerce div.product form.cart .variations select{
  font-family:var(--df-font-sans); padding:10px 12px; border:1px solid var(--df-stone-300);
  border-radius:var(--df-radius-sm); background:var(--df-paper); color:var(--df-ink); min-width:200px;
}
.woocommerce div.product .woocommerce-variation-price .price{ font-size:1.4rem; }
.woocommerce div.product .reset_variations{ color:var(--df-stone-600); font-size:.85rem; }

/* quantità + aggiungi al carrello */
.woocommerce .quantity .qty{
  width:64px; padding:10px 8px; border:1px solid var(--df-stone-300);
  border-radius:var(--df-radius-sm); background:var(--df-paper); color:var(--df-ink); text-align:center;
}
.woocommerce div.product form.cart{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:18px; }
.woocommerce div.product form.cart .button.single_add_to_cart_button{ flex:1 1 auto; min-width:200px; }

/* meta prodotto */
.woocommerce div.product .product_meta{ margin-top:16px; padding-top:16px; border-top:1px solid var(--df-stone-300); font-size:.88rem; color:var(--df-stone-600); }
.woocommerce div.product .product_meta a{ color:var(--df-forest-800); text-decoration:none; }
.woocommerce div.product .product_meta a:hover{ text-decoration:underline; }

/* --- Riquadro rassicurazioni (rete anonima) --- */
.df-reassure{ list-style:none; margin:18px 0 0; padding:16px 18px; background:var(--df-cream); border:1px solid var(--df-stone-300); border-radius:var(--df-radius-md); display:grid; gap:10px; }
.df-reassure li{ position:relative; padding-left:30px; color:var(--df-ink); font-size:.92rem; line-height:1.45; }
.df-reassure li::before{ content:""; position:absolute; left:0; top:1px; width:20px; height:20px; border-radius:50%; background:var(--df-forest-100); box-shadow:inset 0 0 0 2px var(--df-forest-800); }
.df-reassure li::after{ content:""; position:absolute; left:6px; top:7px; width:7px; height:3.5px; border-left:2px solid var(--df-forest-800); border-bottom:2px solid var(--df-forest-800); transform:rotate(-45deg); }

/* --- Schede: Descrizione / Informazioni / Recensioni --- */
.woocommerce div.product .woocommerce-tabs{ margin-top:44px; }
.woocommerce div.product .woocommerce-tabs ul.tabs{ padding:0; margin:0 0 18px; border-bottom:1px solid var(--df-stone-300); display:flex; flex-wrap:wrap; gap:4px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before{ border:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li{ background:transparent; border:0; border-radius:0; margin:0; padding:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{ display:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a{ font-family:var(--df-font-sans); font-weight:600; color:var(--df-stone-600); padding:10px 14px; display:inline-block; border-bottom:2px solid transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover{ color:var(--df-forest-800); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{ color:var(--df-forest-900); border-bottom-color:var(--df-forest-800); }
.woocommerce-Tabs-panel{ color:var(--df-ink); line-height:1.65; }
.woocommerce-Tabs-panel h2{ font-size:1.3rem; margin:0 0 12px; }

/* --- Correlati / upsell --- */
.woocommerce .related, .woocommerce .upsells{ margin-top:48px; }
.woocommerce .related > h2, .woocommerce .upsells > h2{ font-size:1.5rem; margin:0 0 18px; }

/* --- Carrello & checkout (contenitori, i campi sono già stilati sopra) --- */
.woocommerce table.shop_table{ border:1px solid var(--df-stone-300); border-radius:var(--df-radius-md); border-collapse:separate; overflow:hidden; }
.woocommerce table.shop_table th{ font-family:var(--df-font-sans); color:var(--df-ink); }
.woocommerce .cart_totals,
.woocommerce-checkout #order_review{ border:1px solid var(--df-stone-300); border-radius:var(--df-radius-md); padding:18px; background:var(--df-paper); }
.woocommerce #payment, .woocommerce-checkout #payment{ background:var(--df-cream); border-radius:var(--df-radius-md); }


/* ==========================================================================
   Devin Flora — Carrello e Checkout (versione classica / shortcode)
   ========================================================================== */

/* --- Checkout: due colonne (dati a sx, riepilogo a dx sticky) --- */
@media (min-width:900px){
  .woocommerce-checkout form.checkout{
    display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,400px);
    gap:24px 44px; align-items:start;
  }
  .woocommerce-checkout form.checkout #customer_details{ grid-column:1; grid-row:1 / span 2; }
  .woocommerce-checkout form.checkout #order_review_heading{ grid-column:2; grid-row:1; margin:0 0 12px; }
  .woocommerce-checkout form.checkout #order_review{ grid-column:2; grid-row:2; position:sticky; top:20px; }
}
.woocommerce-checkout #customer_details .col2-set,
.woocommerce-checkout #customer_details .col2-set .col-1,
.woocommerce-checkout #customer_details .col2-set .col-2{ width:100%; float:none; margin:0; }
.woocommerce-checkout #customer_details .col-2{ margin-top:24px; }

/* Titoli */
.woocommerce-checkout h3,
.woocommerce-checkout #order_review_heading{ font-family:var(--df-font-display); color:var(--df-forest-900); font-size:1.3rem; margin:0 0 14px; }

/* Etichette e righe dei campi */
.woocommerce form .form-row{ margin:0 0 14px; }
.woocommerce form .form-row label{ font-family:var(--df-font-sans); font-weight:600; color:var(--df-ink); margin-bottom:4px; display:block; }
.woocommerce form .form-row .required{ color:var(--df-clay-700); border:0; text-decoration:none; }
.woocommerce form .form-row .optional{ color:var(--df-stone-400); }
.woocommerce .select2-container--default .select2-selection--single{
  border:1px solid var(--df-stone-300); border-radius:var(--df-radius-sm); height:auto; padding:6px 4px;
}

/* Riepilogo ordine */
.woocommerce-checkout #order_review{ border:1px solid var(--df-stone-300); border-radius:var(--df-radius-lg); padding:20px; background:var(--df-paper); }
.woocommerce-checkout #order_review table.shop_table{ border:0; margin:0; }
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{ padding:10px 0; border-bottom:1px solid var(--df-stone-300); }
.woocommerce-checkout #order_review .order-total th,
.woocommerce-checkout #order_review .order-total td{ border-bottom:0; padding-top:14px; }
.woocommerce-checkout #order_review .order-total .amount{ color:var(--df-forest-800); font-size:1.25rem; }
.woocommerce-checkout #order_review .product-name{ color:var(--df-ink); }
.woocommerce-checkout #order_review .cart_item .product-total .amount{ font-weight:600; }
.woocommerce-checkout #order_review .product-name dl.variation,
.woocommerce-checkout #order_review .product-name .wc-item-meta{ font-size:.82rem; color:var(--df-stone-600); margin:6px 0 0; padding:0; list-style:none; }
.woocommerce-checkout #order_review .product-name .wc-item-meta p{ margin:2px 0; }

/* Coupon / avvisi */
.woocommerce-checkout .checkout_coupon{ border:1px solid var(--df-stone-300); border-radius:var(--df-radius-md); padding:16px; }
.woocommerce .woocommerce-info{ background:var(--df-cream); border-top-color:var(--df-gold-500); color:var(--df-ink); }
.woocommerce .woocommerce-info::before{ color:var(--df-gold-800); }

/* Pagamento */
.woocommerce-checkout #payment{ background:var(--df-cream); border:1px solid var(--df-stone-300); border-radius:var(--df-radius-md); padding:4px 0; }
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:1px solid var(--df-stone-300); padding:16px 18px; }
.woocommerce-checkout #payment ul.payment_methods li{ margin:0 0 8px; }
.woocommerce-checkout #payment div.payment_box{ background:#fff; border-radius:var(--df-radius-sm); color:var(--df-ink); }
.woocommerce-checkout #payment div.payment_box::before{ border-bottom-color:#fff; }
.woocommerce-checkout #payment .place-order{ padding:16px 18px; }
.woocommerce-checkout #payment #place_order{ width:100%; }
.woocommerce-checkout #payment .woocommerce-privacy-policy-text{ font-size:.82rem; color:var(--df-stone-600); }

/* "Spedisci a un indirizzo diverso" */
.woocommerce-checkout #ship-to-different-address{ font-family:var(--df-font-display); font-size:1.15rem; color:var(--df-forest-900); }
.woocommerce-checkout #ship-to-different-address label{ font-weight:600; }

/* --- Carrello classico --- */
.woocommerce-cart table.cart .product-thumbnail img{ width:72px; border-radius:var(--df-radius-sm); }
.woocommerce-cart table.cart td.product-name a{ color:var(--df-forest-800); text-decoration:none; font-weight:600; }
.woocommerce-cart table.cart .product-name .wc-item-meta{ font-size:.82rem; color:var(--df-stone-600); margin-top:6px; padding:0; list-style:none; }
.woocommerce-cart .cart-collaterals .cart_totals{ border:1px solid var(--df-stone-300); border-radius:var(--df-radius-lg); padding:20px; }
.woocommerce-cart .cart-collaterals .cart_totals .order-total .amount{ color:var(--df-forest-800); font-size:1.3rem; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{ width:100%; text-align:center; }
@media (min-width:900px){
  .woocommerce-cart .cart-collaterals{ display:flex; justify-content:flex-end; }
  .woocommerce-cart .cart-collaterals .cart_totals{ width:420px; max-width:100%; }
}


/* ==========================================================================
   Devin Flora — Fix "quadratini" (icone WooCommerce con font non caricato)
   Rende icone e stelle indipendenti dal font di WooCommerce.
   ========================================================================== */

/* Avvisi/note: niente glifo (niente quadratino), spaziatura pulita */
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-noreviews::before,
.woocommerce-page .woocommerce-info::before,
.woocommerce-page .woocommerce-message::before,
.woocommerce-page .woocommerce-error::before{ content:none !important; }
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error,
.woocommerce-page .woocommerce-info,
.woocommerce-page .woocommerce-message,
.woocommerce-page .woocommerce-error{ padding:1em 1.4em !important; }

/* Mostra/nascondi password: via l'icona-glifo (evita il quadratino) */
.woocommerce .show-password-input::after,
.woocommerce-page .show-password-input::after{ content:none !important; }

/* Stelle valutazione: caratteri Unicode al posto del font "star" */
.woocommerce .star-rating,
.woocommerce-page .star-rating,
.woocommerce p.stars a{ font-family:inherit !important; }
.woocommerce .star-rating::before,
.woocommerce-page .star-rating::before{ content:"\2606\2606\2606\2606\2606" !important; color:var(--df-stone-300); }
.woocommerce .star-rating span::before,
.woocommerce-page .star-rating span::before{ content:"\2605\2605\2605\2605\2605" !important; color:var(--df-gold-500); }


/* ==========================================================================
   Devin Flora — Rimozione icone avvisi (i "quadratini")
   Copre sia gli avvisi classici sia quelli nuovi "a blocchi".
   ========================================================================== */

/* Icona come glifo (::before/::after) */
.woocommerce-info::before, .woocommerce-message::before, .woocommerce-error::before,
.woocommerce-info::after, .woocommerce-message::after, .woocommerce-error::after,
.woocommerce-notices-wrapper .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-error::before,
.wc-block-components-notice-banner::before,
.wc-block-components-notice-banner__content::before{
  content: none !important;
}

/* Icona come SVG (stile nuovo) */
.woocommerce-info > svg, .woocommerce-message > svg, .woocommerce-error > svg,
.woocommerce-notices-wrapper svg,
.wc-block-components-notice-banner > svg,
.wc-block-components-notice-banner__icon{
  display: none !important;
}

/* Spaziatura pulita senza icona */
.woocommerce-info, .woocommerce-message, .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error{
  padding: 1em 1.4em !important;
  background-position: 1.4em center;
}
.wc-block-components-notice-banner{ padding-left: 1.4em !important; }
.wc-block-components-notice-banner__content{ margin-left: 0 !important; }


/* ==========================================================================
   Devin Flora — Checkout: rifinitura "card" (look mockup)
   Schede sui dati a sinistra, in linea col riepilogo; CTA "Paga ora".
   ========================================================================== */

/* Le sezioni dei dati diventano schede, coerenti col riepilogo a destra */
.woocommerce-checkout #customer_details .woocommerce-billing-fields,
.woocommerce-checkout #customer_details .woocommerce-shipping-fields,
.woocommerce-checkout #customer_details .woocommerce-additional-fields{
  background: var(--df-paper);
  border: 1px solid var(--df-stone-300);
  border-radius: var(--df-radius-lg);
  padding: 22px 24px;
  box-shadow: var(--df-shadow-sm);
  margin: 0 0 20px;
}
.woocommerce-checkout #customer_details .col-2{ margin-top: 0; }

/* Intestazioni di sezione come "header" della scheda */
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #customer_details .woocommerce-additional-fields h3{
  font-family: var(--df-font-display);
  color: var(--df-forest-900);
  font-size: 1.25rem;
  margin: 0 0 16px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--df-stone-300);
}
/* "Spedisci a un indirizzo diverso" come header della scheda spedizione */
.woocommerce-checkout #ship-to-different-address{
  margin: 0 0 16px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--df-stone-300);
}
.woocommerce-checkout .woocommerce-shipping-fields .shipping_address{ margin-top: 4px; }

/* Riepilogo: titolo allineato alle schede */
.woocommerce-checkout #order_review_heading{ padding: 0 2px; }

/* Bottone "Paga ora": CTA prominente in tinta brand */
.woocommerce-checkout #payment #place_order{
  width: 100%;
  font-family: var(--df-font-sans);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: .2px;
  color: var(--df-paper);
  background: var(--df-forest-800);
  border: 0;
  border-radius: var(--df-radius-md);
  padding: 16px 22px;
  box-shadow: var(--df-shadow-sm);
  transition: background .15s ease, transform .05s ease, box-shadow .15s ease;
}
.woocommerce-checkout #payment #place_order:hover{
  background: var(--df-forest-900);
  box-shadow: var(--df-shadow-md);
}
.woocommerce-checkout #payment #place_order:active{ transform: translateY(1px); }
.woocommerce-checkout #payment #place_order:focus-visible{
  outline: none;
  box-shadow: 0 0 0 3px var(--df-gold-100), 0 0 0 5px var(--df-gold-500);
}

/* Schede su mobile: margini e niente sticky */
@media (max-width: 899px){
  .woocommerce-checkout #order_review{ margin-top: 20px; }
  .woocommerce-checkout #customer_details .woocommerce-billing-fields,
  .woocommerce-checkout #customer_details .woocommerce-shipping-fields,
  .woocommerce-checkout #customer_details .woocommerce-additional-fields{
    padding: 18px 18px;
  }
}


/* ==========================================================================
   Devin Flora — Checkout in 2 step (Destinatario -> Pagamento) + extra
   ========================================================================== */

/* Indicatore di step */
.df-steps{ display:flex; align-items:center; justify-content:center; gap:12px; margin:0 0 24px; flex-wrap:wrap; }
.df-steps__item{ display:inline-flex; align-items:center; gap:8px; background:transparent; border:0; cursor:pointer; font-family:var(--df-font-sans); font-weight:600; font-size:1rem; color:var(--df-stone-400); padding:4px 2px; }
.df-steps__item .df-steps__n{ display:inline-grid; place-items:center; width:26px; height:26px; border-radius:var(--df-radius-pill); background:var(--df-stone-300); color:var(--df-paper); font-size:.85rem; transition:background .15s ease; }
.df-steps__item.is-active{ color:var(--df-forest-900); }
.df-steps__item.is-active .df-steps__n{ background:var(--df-forest-800); }
.df-steps__item.is-done .df-steps__n{ background:var(--df-forest-600); }
.df-steps__sep{ width:44px; height:2px; background:var(--df-stone-300); border-radius:2px; }

/* Mostra/nascondi gli step (solo quando il JS attiva .df-2step) */
.woocommerce-checkout form.checkout.df-2step[data-step="1"] #order_review_heading,
.woocommerce-checkout form.checkout.df-2step[data-step="1"] #order_review,
.woocommerce-checkout form.checkout.df-2step[data-step="1"] .df-back,
.woocommerce-checkout form.checkout.df-2step[data-step="1"] .df-s2{ display:none !important; }
.woocommerce-checkout form.checkout.df-2step[data-step="2"] .df-continue,
.woocommerce-checkout form.checkout.df-2step[data-step="2"] .df-s1{ display:none !important; }

/* In 2 step si mostra una sezione per volta, a tutta larghezza e centrata */
@media (min-width:900px){
  .woocommerce-checkout form.checkout.df-2step{ display:block; }
  .woocommerce-checkout form.checkout.df-2step #customer_details,
  .woocommerce-checkout form.checkout.df-2step #order_review,
  .woocommerce-checkout form.checkout.df-2step #order_review_heading{ grid-column:auto; grid-row:auto; position:static; }
  .woocommerce-checkout form.checkout.df-2step #customer_details{ max-width:760px; margin-left:auto; margin-right:auto; }
  .woocommerce-checkout form.checkout.df-2step #order_review_heading{ max-width:640px; margin-left:auto; margin-right:auto; }
  .woocommerce-checkout form.checkout.df-2step #order_review{ max-width:640px; margin-left:auto; margin-right:auto; }
}

/* Pulsante "Continua al pagamento" */
.df-continue{ margin:24px auto 0; max-width:760px; }
.df-continue__btn{ width:100%; font-family:var(--df-font-sans); font-weight:700; font-size:1.05rem; letter-spacing:.2px; color:var(--df-paper); background:var(--df-forest-800); border:0; border-radius:var(--df-radius-md); padding:16px 22px; box-shadow:var(--df-shadow-sm); cursor:pointer; transition:background .15s ease, box-shadow .15s ease; }
.df-continue__btn:hover{ background:var(--df-forest-900); box-shadow:var(--df-shadow-md); }
.df-continue__btn:active{ transform:translateY(1px); }

/* Link "Indietro" */
.df-back{ display:inline-block; background:transparent; border:0; cursor:pointer; color:var(--df-forest-800); font-family:var(--df-font-sans); font-weight:600; font-size:.95rem; padding:0; margin:0 0 16px; }
.df-back:hover{ color:var(--df-forest-900); text-decoration:underline; }

/* Riga di rassicurazione sotto al bottone */
.df-checkout-trust{ display:flex; align-items:center; justify-content:center; gap:8px; margin:14px 0 0; font-size:.9rem; color:var(--df-stone-600); }
.df-checkout-trust svg{ width:16px; height:16px; color:var(--df-forest-600); flex:0 0 auto; }
.df-checkout-trust strong{ color:var(--df-forest-800); font-weight:600; }

/* Miniature dei prodotti nel riepilogo */
.woocommerce-checkout #order_review .cart_item .product-name{ overflow:hidden; }
.df-sum-thumb{ float:left; margin:0 12px 0 0; }
.df-sum-thumb img,
.df-sum-thumb-img{ width:48px; height:48px; object-fit:cover; border-radius:var(--df-radius-sm); display:block; border:1px solid var(--df-stone-300); }


/* ==========================================================================
   Devin Flora — Checkout 2 step: forza COLONNA SINGOLA centrata
   (vince su eventuali griglie di plugin / WooCommerce default)
   ========================================================================== */
@media (min-width:900px){
  .woocommerce-checkout form.checkout.df-2step{ display:block !important; max-width:720px; margin-left:auto; margin-right:auto; }
  .woocommerce-checkout form.checkout.df-2step #customer_details,
  .woocommerce-checkout form.checkout.df-2step #customer_details .col2-set,
  .woocommerce-checkout form.checkout.df-2step #customer_details .col-1,
  .woocommerce-checkout form.checkout.df-2step #customer_details .col-2{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    float:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
    grid-template-columns:none !important;
  }
  .woocommerce-checkout form.checkout.df-2step #order_review,
  .woocommerce-checkout form.checkout.df-2step #order_review_heading{ max-width:none !important; }
}

/* Nasconde la sezione spedizione se priva di campi (card "vuota") */
.woocommerce-checkout .woocommerce-shipping-fields .shipping_address:empty{ display:none; }


/* (La sezione spedizione ora E' usata come "destinatario": vedi modello a due blocchi.) */


/* ==========================================================================
   Devin Flora — Riepilogo ordine in stile mockup (card con righe-articolo)
   ========================================================================== */
.woocommerce-checkout #order_review table.shop_table thead{ display:none; }
.woocommerce-checkout #order_review table.shop_table,
.woocommerce-checkout #order_review table.shop_table tbody,
.woocommerce-checkout #order_review table.shop_table tfoot{ display:block; width:100%; }

/* Righe articolo */
.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item{
  display:grid; grid-template-columns:1fr auto; gap:2px 14px; align-items:start;
  padding:14px 0; border:0; border-bottom:1px dashed var(--df-stone-300);
}
.woocommerce-checkout #order_review table.shop_table tbody tr.cart_item:first-child{ padding-top:0; }
.woocommerce-checkout #order_review table.shop_table td.product-name{
  border:0; padding:0; overflow:hidden;
  font-family:var(--df-font-sans); font-weight:600; font-size:.95rem; color:var(--df-ink);
}
.woocommerce-checkout #order_review table.shop_table td.product-total{
  border:0; padding:0; text-align:right; white-space:nowrap;
  font-family:var(--df-font-display); font-weight:600; font-size:.98rem; color:var(--df-ink);
}
.woocommerce-checkout #order_review td.product-name .product-quantity{ color:var(--df-stone-600); font-weight:600; }
.woocommerce-checkout #order_review td.product-name dl.variation,
.woocommerce-checkout #order_review td.product-name .wc-item-meta{
  margin:6px 0 0; padding:0; list-style:none; font-size:.8rem; font-weight:400; color:var(--df-stone-600); line-height:1.5;
}
.woocommerce-checkout #order_review td.product-name dl.variation dt,
.woocommerce-checkout #order_review td.product-name .wc-item-meta strong{ font-weight:600; color:var(--df-forest-700); }
.woocommerce-checkout #order_review td.product-name dl.variation dd{ margin:0 0 4px; }

/* Totali */
.woocommerce-checkout #order_review tfoot tr{ display:flex; justify-content:space-between; align-items:center; border:0; }
.woocommerce-checkout #order_review tfoot tr th,
.woocommerce-checkout #order_review tfoot tr td{
  border:0; padding:7px 0; text-align:left;
  font-family:var(--df-font-sans); font-weight:400; color:var(--df-stone-600);
}
.woocommerce-checkout #order_review tfoot tr td{ text-align:right; color:var(--df-ink); font-weight:600; }
.woocommerce-checkout #order_review tfoot tr.cart-subtotal{ padding-top:14px; }
.woocommerce-checkout #order_review tfoot tr.order-total{
  margin-top:6px; padding-top:14px; border-top:1.5px dashed var(--df-stone-300); align-items:baseline;
}
.woocommerce-checkout #order_review tfoot tr.order-total th{
  font-family:var(--df-font-display); font-weight:600; font-size:1.05rem; color:var(--df-forest-900);
}
.woocommerce-checkout #order_review tfoot tr.order-total td,
.woocommerce-checkout #order_review tfoot tr.order-total td .amount{
  font-family:var(--df-font-display); font-weight:600; font-size:1.55rem; color:var(--df-forest-900);
}
.woocommerce-checkout #order_review tfoot tr.order-total td small{ font-size:.7rem; font-weight:400; color:var(--df-stone-400); }

/* Foto articolo a 54px come il mockup */
.woocommerce-checkout #order_review .df-sum-thumb img,
.woocommerce-checkout #order_review .df-sum-thumb-img{ width:54px; height:54px; border-radius:var(--df-radius-md); }

/* ==========================================================================
   CTA principale in terracotta (clay) come il mockup
   ========================================================================== */
.woocommerce-checkout #payment #place_order,
.df-continue__btn{
  background:var(--df-clay-700) !important;
  box-shadow:0 6px 18px rgba(181,83,42,.28);
}
.woocommerce-checkout #payment #place_order:hover,
.df-continue__btn:hover{
  background:var(--df-clay-800) !important;
  box-shadow:0 8px 22px rgba(181,83,42,.34);
}

/* Metodi di pagamento come "card" del mockup */
.woocommerce-checkout #payment ul.payment_methods{ border-bottom:0; padding:16px 18px 4px; }
.woocommerce-checkout #payment ul.payment_methods li{
  background:var(--df-cream); border:1.5px solid var(--df-stone-300);
  border-radius:var(--df-radius-md); padding:13px 14px; margin:0 0 10px;
}


/* Niente suffisso "(facoltativo)" sui campi: gli obbligatori restano con * */
.woocommerce form .form-row .optional{ display:none !important; }


/* Riga rassicurazione: sempre full-width e centrata sotto il bottone */
.woocommerce-checkout #payment .place-order{ display:block; }
.woocommerce-checkout #payment #place_order{ width:100%; float:none; }
.woocommerce-checkout #payment > .df-checkout-trust,
.woocommerce-checkout .df-checkout-trust{
  display:flex !important; width:100%; box-sizing:border-box;
  clear:both; float:none; justify-content:center; align-items:center;
  gap:8px; margin:0; padding:14px 18px 6px; text-align:center;
}


/* ==========================================================================
   Devin Flora — Carrello in stile mockup (card articoli + riepilogo)
   ========================================================================== */

/* Layout a 2 colonne: articoli | riepilogo (sticky) */
@media (min-width:900px){
  .woocommerce-cart .woocommerce{
    display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:24px; align-items:start;
  }
  .woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
  .woocommerce-cart .woocommerce > .woocommerce-message,
  .woocommerce-cart .woocommerce > .woocommerce-info,
  .woocommerce-cart .woocommerce > .woocommerce-error,
  .woocommerce-cart .woocommerce > .cart-empty{ grid-column:1 / -1; }
  .woocommerce-cart .woocommerce-cart-form{ grid-column:1; margin:0; }
  .woocommerce-cart .cart-collaterals{ grid-column:2; width:auto; float:none; display:block; }
  .woocommerce-cart .cart-collaterals .cart_totals{ width:auto; max-width:none; position:sticky; top:96px; }
}
/* nascondo i cross-sell per restare puliti come il mockup */
.woocommerce-cart .cart-collaterals .cross-sells{ display:none; }

/* Tabella articoli come card unica */
.woocommerce-cart table.cart.shop_table{
  border:1px solid var(--df-stone-300); border-radius:var(--df-radius-lg);
  background:var(--df-paper); overflow:hidden; margin:0; border-collapse:separate; border-spacing:0;
}
.woocommerce-cart table.cart thead{ display:none; }
.woocommerce-cart table.cart,
.woocommerce-cart table.cart tbody{ display:block; width:100%; }
.woocommerce-cart table.cart tbody tr{ display:block; }
.woocommerce-cart table.cart td::before{ display:none !important; } /* etichette responsive */

/* Riga articolo: foto | (nome, prezzo cad., rimuovi) | (quantità, totale) */
.woocommerce-cart table.cart tbody tr.cart_item{
  display:grid;
  grid-template-columns:84px minmax(0,1fr) auto;
  grid-template-areas:
    "thumb name  qty"
    "thumb price sub"
    "thumb rem   sub";
  column-gap:16px; row-gap:3px; align-items:start;
  padding:18px; border:0; border-bottom:1px solid var(--df-sand);
}
.woocommerce-cart table.cart tbody tr.cart_item:last-of-type{ border-bottom:0; }
.woocommerce-cart table.cart tr.cart_item td{ border:0; padding:0; }

.woocommerce-cart table.cart td.product-thumbnail{ grid-area:thumb; align-self:center; }
.woocommerce-cart table.cart td.product-thumbnail img{ width:84px; height:84px; object-fit:cover; border-radius:var(--df-radius-md); }
.woocommerce-cart table.cart td.product-name{ grid-area:name; align-self:center; }
.woocommerce-cart table.cart td.product-name a{ font-family:var(--df-font-display); font-weight:600; font-size:1.05rem; color:var(--df-forest-900); text-decoration:none; }
.woocommerce-cart table.cart td.product-name .wc-item-meta,
.woocommerce-cart table.cart td.product-name dl.variation{ font-family:var(--df-font-sans); font-size:.82rem; color:var(--df-stone-600); margin-top:6px; padding:0; list-style:none; }
.woocommerce-cart table.cart td.product-name .wc-item-meta strong,
.woocommerce-cart table.cart td.product-name dl.variation dt{ font-weight:600; color:var(--df-forest-700); }

.woocommerce-cart table.cart td.product-price{ grid-area:price; align-self:center; font-size:.85rem; color:var(--df-stone-600); }
.woocommerce-cart table.cart td.product-price::after{ content:" cad."; color:var(--df-stone-400); }

.woocommerce-cart table.cart td.product-quantity{ grid-area:qty; justify-self:end; align-self:center; }
.woocommerce-cart table.cart td.product-subtotal{ grid-area:sub; justify-self:end; align-self:center; font-family:var(--df-font-sans); font-weight:700; font-size:1.05rem; color:var(--df-ink); }

.woocommerce-cart table.cart td.product-remove{ grid-area:rem; align-self:start; justify-self:start; }
.woocommerce-cart table.cart td.product-remove a.remove{
  width:auto; height:auto; line-height:1; border-radius:0; background:none; font-size:0;
}
.woocommerce-cart table.cart td.product-remove a.remove::before{
  content:"Rimuovi"; font-family:var(--df-font-sans); font-size:.8rem; font-weight:600; color:var(--df-stone-400);
}
.woocommerce-cart table.cart td.product-remove a.remove:hover{ background:none; }
.woocommerce-cart table.cart td.product-remove a.remove:hover::before{ color:var(--df-error); }

/* Riga azioni (coupon + aggiorna) */
.woocommerce-cart table.cart td.actions{
  display:flex; flex-wrap:wrap; gap:12px; align-items:center;
  padding:16px 18px; border-top:1px solid var(--df-stone-300);
}
.woocommerce-cart table.cart td.actions .coupon{ display:flex; gap:8px; flex:1 1 280px; }
.woocommerce-cart table.cart td.actions .coupon .input-text{ flex:1; min-width:0; }
.woocommerce-cart table.cart td.actions button[name="update_cart"]{ margin-left:auto; }

/* Riepilogo (cart_totals) come card cream del mockup */
.woocommerce-cart .cart-collaterals .cart_totals{
  background:var(--df-cream); border:1px solid var(--df-stone-300); border-radius:var(--df-radius-lg); padding:24px;
}
.woocommerce-cart .cart_totals h2{ font-family:var(--df-font-display); font-weight:600; font-size:1.25rem; color:var(--df-forest-900); margin:0 0 14px; padding:0; border:0; }
.woocommerce-cart .cart_totals table{ margin:0; border:0; }
.woocommerce-cart .cart_totals table tr{ display:flex; justify-content:space-between; align-items:center; border:0; }
.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td{ border:0; padding:7px 0; text-align:left; font-family:var(--df-font-sans); font-size:.95rem; font-weight:400; color:var(--df-stone-600); }
.woocommerce-cart .cart_totals table td{ text-align:right; color:var(--df-ink); font-weight:600; }
.woocommerce-cart .cart_totals table tr.order-total{ border-top:1px solid var(--df-stone-300); margin-top:8px; padding-top:14px; align-items:baseline; }
.woocommerce-cart .cart_totals table tr.order-total th{ font-family:var(--df-font-display); font-weight:600; color:var(--df-forest-900); font-size:1.05rem; }
.woocommerce-cart .cart_totals table tr.order-total td,
.woocommerce-cart .cart_totals table tr.order-total td .amount{ font-family:var(--df-font-display); font-weight:600; font-size:1.6rem; color:var(--df-forest-900); }

.woocommerce-cart .wc-proceed-to-checkout{ padding:0; margin-top:16px; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
  width:100%; text-align:center; background:var(--df-clay-700) !important; color:#fff !important;
  font-family:var(--df-font-sans); font-weight:700; border-radius:var(--df-radius-md); padding:14px 22px;
  box-shadow:0 6px 18px rgba(181,83,42,.28);
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{ background:var(--df-clay-800) !important; }

/* Mobile: foto piu' piccola, righe piu' compatte */
@media (max-width:560px){
  .woocommerce-cart table.cart tbody tr.cart_item{ grid-template-columns:64px minmax(0,1fr) auto; column-gap:12px; padding:14px; }
  .woocommerce-cart table.cart td.product-thumbnail img{ width:64px; height:64px; }
}


/* --- Carrello: dettagli articolo in griglia etichetta|valore (coerente desktop/mobile) --- */
.woocommerce-cart table.cart td.product-name dl.variation{ display:grid; grid-template-columns:auto minmax(0,1fr); gap:2px 8px; }
.woocommerce-cart table.cart td.product-name dl.variation dt{ font-weight:600; color:var(--df-forest-700); margin:0; float:none; }
.woocommerce-cart table.cart td.product-name dl.variation dd{ margin:0; float:none; color:var(--df-stone-600); }

/* --- Carrello mobile: mantieni la griglia, annulla la "tabella responsive" di WooCommerce --- */
@media (max-width:768px){
  .woocommerce-cart table.cart tbody tr.cart_item td.product-thumbnail{ display:block !important; }
  .woocommerce-cart table.cart tbody tr.cart_item td.product-name,
  .woocommerce-cart table.cart tbody tr.cart_item td.product-price,
  .woocommerce-cart table.cart tbody tr.cart_item td.product-remove{ text-align:left !important; }
  .woocommerce-cart table.cart tbody tr.cart_item td.product-quantity,
  .woocommerce-cart table.cart tbody tr.cart_item td.product-subtotal{ text-align:right !important; }
  .woocommerce-cart table.cart td.product-name dl.variation dd{ text-align:left; }
}


/* ==========================================================================
   Devin Flora — Intestazione checkout + nota destinatario (mockup)
   ========================================================================== */
.woocommerce-checkout .df-checkout-intro{ text-align:center; max-width:640px; margin:0 auto 22px; }
.woocommerce-checkout .df-checkout-intro h1{
  font-family:var(--df-font-display); font-weight:600;
  font-size:clamp(1.7rem,1.3rem + 1.6vw,2.4rem); color:var(--df-forest-900); margin:0 0 8px; line-height:1.15;
}
.woocommerce-checkout .df-checkout-intro p{ color:var(--df-stone-600); font-size:1rem; margin:0; }

.woocommerce-checkout .df-recipient-note{
  font-size:.85rem; color:var(--df-forest-900); line-height:1.5;
  background:var(--df-forest-100); border-radius:var(--df-radius-sm);
  padding:11px 13px; margin:0 0 16px;
}


/* ==========================================================================
   Devin Flora — Checkout a due blocchi (acquirente + destinatario)
   ========================================================================== */
/* Il destinatario è sempre un blocco a sé: nascondo la checkbox "spedisci a indirizzo diverso" */
.woocommerce-checkout #ship-to-different-address input{ display:none; }
.woocommerce-checkout #ship-to-different-address label{ cursor:default; }
/* Campo paese (mittente) nascosto: impostato a IT di default */
.woocommerce-checkout .df-hidden-field{ display:none !important; }


/* ==========================================================================
   Devin Flora — Dati fattura (mostrati solo se "azienda/fattura" è spuntato)
   ========================================================================== */
.woocommerce-checkout .df-invoice-field{ display:none; }
.woocommerce-checkout form.df-show-invoice .df-invoice-field{ display:block; }
.woocommerce-checkout .df-invoice-toggle{ margin:4px 0 8px; }
.woocommerce-checkout .df-invoice-toggle label{ font-weight:600; color:var(--df-forest-900); cursor:pointer; }


/* ==========================================================================
   Devin Flora — Varianti come card (es. Standard / Premium / Deluxe)
   ========================================================================== */
/* Nasconde il menu a tendina nativo SOLO se sostituito dalle card */
.single-product table.variations select.df-var-hidden{ display:none !important; }
/* Layout applicato SOLO alle righe trasformate in card */
.single-product tr.df-cards-row,
.single-product tr.df-cards-row th,
.single-product tr.df-cards-row td{ display:block; width:100%; border:0; padding:0; }
.single-product tr.df-cards-row th.label{ margin:6px 0 8px; }
.single-product tr.df-cards-row th.label label{ font-family:var(--df-font-display,"Fraunces"); font-size:1.02rem; font-weight:600; color:var(--df-forest-900,#1E3A2B); margin:0; }
/* Nelle righe con card non serve il link "Cancella" */
.single-product tr.df-cards-row .reset_variations{ display:none !important; }

.df-varcards{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:4px 0 6px; }
@media (max-width:560px){ .df-varcards{ grid-template-columns:1fr; } }

.df-varcard{
	display:flex; align-items:center; gap:12px; text-align:left;
	padding:14px 16px; font:inherit; cursor:pointer;
	background:var(--df-paper,#fff); color:var(--df-ink,#232019);
	border:1.5px solid var(--df-stone-300,#DCD4C7);
	border-radius:var(--df-radius-md,14px);
	transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.df-varcard:hover{ border-color:var(--df-forest-700,#2E5A41); }
.df-varcard:focus-visible{ outline:2px solid var(--df-forest-700,#2E5A41); outline-offset:2px; }
.df-varcard.is-active{
	border-color:var(--df-forest-700,#2E5A41);
	background:var(--df-forest-100,#E4EDE7);
	box-shadow:0 4px 14px rgba(46,90,65,.16);
}
.df-varcard__ico{ flex:0 0 auto; display:inline-flex; align-items:center; color:var(--df-forest-700,#2E5A41); }
.df-varcard.is-active .df-varcard__ico{ color:var(--df-forest-800,#264634); }
.df-varcard__body{ display:flex; flex-direction:column; line-height:1.2; min-width:0; }
.df-varcard__name{ font-weight:600; }
.df-varcard__price{ font-family:var(--df-font-display,"Fraunces"); font-size:1.05rem; color:var(--df-forest-900,#1E3A2B); margin-top:2px; }


/* ==========================================================================
   Devin Flora — Sezioni sotto la scheda prodotto (estetica ricca)
   ========================================================================== */
:root{ --df-leaf-clay:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 20C4 11 11 4 20 4 20 13 13 20 4 20z' fill='%23B5532A'/></svg>"); }

/* occhiello */
.df-eyebrow{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--df-clay-700,#B5532A); display:flex; align-items:center; gap:9px; margin-bottom:14px; }
.df-eyebrow::before{ content:""; width:26px; height:2px; background:var(--df-gold-500,#D9A521); }
.df-eyebrow--gold{ color:var(--df-gold-500,#D9A521); justify-content:center; }

/* cornice foto / illustrazione */
.df-frame{ position:relative; }
.df-frame__img{ position:relative; aspect-ratio:4/5; border-radius:var(--df-radius-lg,20px); overflow:hidden; background:linear-gradient(150deg,var(--df-clay-100,#F7E7DD),var(--df-sand,#EFE7DA) 55%,var(--df-forest-100,#E4EDE7)); box-shadow:0 22px 48px rgba(30,58,43,.16); border:1px solid rgba(217,165,33,.55); }
.df-frame__photo{ width:100%; height:100%; object-fit:cover; display:block; }
.df-frame__illu{ position:absolute; right:-10px; bottom:-10px; width:78%; color:var(--df-forest-700,#2E5A41); opacity:.22; }
.df-frame__cap{ position:absolute; inset:0; display:grid; place-items:center; font-family:var(--df-font-display,"Fraunces"); font-style:italic; font-size:1.05rem; color:var(--df-forest-700,#2E5A41); opacity:.6; }
.df-frame__sprig{ position:absolute; top:-22px; left:-18px; width:90px; color:var(--df-forest-700,#2E5A41); transform:rotate(-12deg); z-index:2; filter:drop-shadow(0 6px 10px rgba(0,0,0,.08)); }
.df-frame__sprig--r{ left:auto; right:-18px; transform:rotate(12deg) scaleX(-1); }

/* 1) fascia rassicurazione */
.df-pstrip{ background:var(--df-sand,#EFE7DA); border-top:1px solid rgba(217,165,33,.45); border-bottom:1px solid rgba(217,165,33,.45); margin-top:28px; }
.df-pstrip__in{ max-width:1040px; margin:0 auto; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 30px; padding:20px; }
.df-pstrip__cell{ display:flex; align-items:center; gap:12px; font-size:.95rem; font-weight:500; color:var(--df-forest-900,#1E3A2B); max-width:280px; }
.df-pstrip__badge{ flex:0 0 auto; display:inline-grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--df-forest-100,#E4EDE7); color:var(--df-forest-700,#2E5A41); }
.df-pstrip__badge svg{ width:22px; height:22px; }
.df-pstrip__sep{ width:1px; height:34px; background:var(--df-stone-300,#DCD4C7); }
@media (max-width:780px){ .df-pstrip__in{ flex-direction:column; align-items:flex-start; gap:14px; } .df-pstrip__sep{ display:none; } }

/* 2) editoriale a due colonne */
.df-pdesc{ position:relative; overflow:hidden; padding:54px 0; }
.df-pdesc__bg{ position:absolute; left:-50px; top:24px; width:260px; color:var(--df-forest-600,#386B4E); opacity:.07; pointer-events:none; }
.df-pdesc__in{ position:relative; max-width:1040px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:46px; align-items:center; padding:0 20px; }
.df-pdesc__text h2{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:2.2rem; line-height:1.13; color:var(--df-forest-900,#1E3A2B); margin:0 0 16px; position:relative; padding-bottom:14px; }
.df-pdesc__text h2::after{ content:""; position:absolute; left:0; bottom:0; width:64px; height:3px; border-radius:2px; background:var(--df-gold-500,#D9A521); }
.df-pdesc__text p{ color:var(--df-stone-600,#6B6357); font-size:1.06rem; line-height:1.78; margin:0 0 14px; }
.df-pdesc__text p:first-of-type::first-letter{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:3.4em; line-height:.78; float:left; color:var(--df-clay-700,#B5532A); margin:.06em .14em 0 0; }
.df-pdesc__text h3{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:1.4rem; color:var(--df-clay-800,#8C3F1E); margin:26px 0 12px; display:flex; align-items:center; gap:10px; }
.df-pdesc__text h3::before{ content:""; width:20px; height:20px; flex:0 0 auto; background:var(--df-leaf-clay) no-repeat center/contain; }
.df-pdesc__text ul{ margin:0 0 14px; padding:0; list-style:none; }
.df-pdesc__text ul li{ position:relative; padding-left:30px; margin:0 0 12px; color:var(--df-forest-900,#1E3A2B); font-size:1.02rem; line-height:1.55; }
.df-pdesc__text ul li::before{ content:""; position:absolute; left:0; top:.18em; width:18px; height:18px; background:var(--df-leaf-clay) no-repeat center/contain; }
.df-pdesc__text img{ max-width:100%; height:auto; border-radius:var(--df-radius-md,14px); margin:10px 0; }
@media (max-width:860px){ .df-pdesc__in{ grid-template-columns:1fr; gap:26px; } .df-pdesc__media{ order:-1; } }

/* 3) cura e consigli — card scura */
.df-pcare{ padding:30px 20px; }
.df-pcare__in{ max-width:1040px; margin:0 auto; }
.df-pcare__card{ position:relative; overflow:hidden; background:var(--df-forest-900,#1E3A2B); color:var(--df-cream,#FAF6F0); border-radius:var(--df-radius-lg,20px); padding:36px 34px; box-shadow:0 22px 48px rgba(30,58,43,.2); }
.df-pcare__art{ position:absolute; right:-30px; top:-24px; width:210px; color:var(--df-gold-500,#D9A521); opacity:.16; }
.df-pcare__h{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:1.5rem; color:#fff; margin:0 0 22px; display:flex; align-items:center; gap:12px; position:relative; }
.df-pcare__h svg{ width:26px; height:26px; color:var(--df-gold-500,#D9A521); flex:0 0 auto; }
.df-pcare__grid{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:16px 28px; }
.df-pcare__tip{ display:flex; gap:13px; align-items:flex-start; }
.df-pcare__dot{ flex:0 0 auto; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; background:rgba(217,165,33,.18); color:var(--df-gold-500,#D9A521); }
.df-pcare__dot svg{ width:17px; height:17px; }
.df-pcare__tip span:last-child{ color:rgba(255,255,255,.88); line-height:1.5; }
@media (max-width:680px){ .df-pcare__grid{ grid-template-columns:1fr; } }

/* 4) consegna — due colonne su sabbia */
.df-pdeliv{ background:var(--df-sand,#EFE7DA); }
.df-pdeliv__in{ max-width:1040px; margin:0 auto; display:grid; grid-template-columns:.95fr 1.05fr; gap:46px; align-items:center; padding:54px 20px; }
.df-pdeliv__title{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:1.85rem; color:var(--df-forest-900,#1E3A2B); margin:0 0 14px; }
.df-pdeliv__text p{ color:var(--df-stone-600,#6B6357); font-size:1.04rem; line-height:1.76; margin:0 0 12px; }
@media (max-width:860px){ .df-pdeliv__in{ grid-template-columns:1fr; gap:26px; } .df-pdeliv__media{ order:-1; } }

/* 4b) fascia brand scura */
.df-pbrand{ position:relative; overflow:hidden; background:var(--df-forest-900,#1E3A2B); color:var(--df-cream,#FAF6F0); }
.df-pbrand__in{ position:relative; z-index:1; max-width:760px; margin:0 auto; padding:62px 22px; text-align:center; }
.df-pbrand h2{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:2.3rem; line-height:1.15; color:#fff; margin:0 0 14px; }
.df-pbrand p{ color:rgba(255,255,255,.82); font-size:1.07rem; line-height:1.7; margin:0; }
.df-pbrand__l{ position:absolute; left:-30px; bottom:-30px; width:190px; color:var(--df-gold-500,#D9A521); opacity:.2; }
.df-pbrand__r{ position:absolute; right:-30px; top:-30px; width:190px; color:var(--df-gold-500,#D9A521); opacity:.2; transform:scaleX(-1); }

/* 5) tre colonne — tessere */
.df-ptris{ background:var(--df-paper,#fff); }
.df-ptris__in{ max-width:1040px; margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:26px; padding:54px 20px; }
.df-ptris__cell{ background:var(--df-cream,#FAF6F0); border-radius:var(--df-radius-lg,20px); padding:32px 24px; text-align:center; border-top:3px solid var(--df-gold-500,#D9A521); box-shadow:0 12px 30px rgba(30,58,43,.07); }
.df-ptris__badge{ display:inline-grid; place-items:center; width:66px; height:66px; border-radius:50%; background:var(--df-forest-100,#E4EDE7); color:var(--df-forest-700,#2E5A41); margin-bottom:16px; }
.df-ptris__badge svg{ width:32px; height:32px; }
.df-ptris h3{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:1.2rem; color:var(--df-forest-900,#1E3A2B); margin:0 0 8px; }
.df-ptris p{ margin:0; color:var(--df-stone-600,#6B6357); font-size:.95rem; line-height:1.6; }
@media (max-width:780px){ .df-ptris__in{ grid-template-columns:1fr; gap:22px; } }

/* ==========================================================================
   Checkout — descrizioni dei campi come testo sotto al campo (no fumetto blu).
   Di serie WooCommerce mostra la .description come tooltip azzurro (#3D9CD2) con
   freccetta, che su mobile copre il campo (es. Telefono). Qui la rendiamo inline.
   ========================================================================== */
.woocommerce form .form-row .description,
.woocommerce-page form .form-row .description{
	display:block !important;
	position:static !important;
	max-width:none !important;
	margin:6px 2px 0 !important;
	padding:0 !important;
	background:none !important;
	color:var(--df-stone-600,#6B6357) !important;
	font-size:.85rem !important;
	line-height:1.4 !important;
	border-radius:0 !important;
	box-shadow:none !important;
	white-space:normal !important;
}
.woocommerce form .form-row .description::before,
.woocommerce form .form-row .description::after,
.woocommerce-page form .form-row .description::before,
.woocommerce-page form .form-row .description::after{
	content:none !important;
	display:none !important;
	border:0 !important;
}

/* Etichetta "A partire da" sui prodotti con varianti negli elenchi */
.df-from{ display:block; font-size:.72em; font-weight:600; letter-spacing:.01em; color:var(--df-stone-600,#6B6357); text-transform:none; margin-bottom:1px; }

/* ==========================================================================
   Pagina categoria ricca — testata + sottocategorie + rassicurazioni + brand
   ========================================================================== */
.df-kicker{ text-align:center; font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--df-clay-700,#B5532A); margin:0 0 10px; }
.df-sectitle{ text-align:center; font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:2rem; line-height:1.15; color:var(--df-forest-900,#1E3A2B); margin:0 0 26px; }

/* testata */
.df-cat-hero{ padding:22px 0 6px; }
.df-cat-hero__box{ display:grid; grid-template-columns:1.04fr .96fr; min-height:380px; border-radius:var(--df-radius-lg,22px); overflow:hidden; box-shadow:0 26px 54px rgba(30,58,43,.16); }
.df-cat-hero__txt{ position:relative; overflow:hidden; background:var(--df-forest-900,#1E3A2B); color:var(--df-cream,#FAF6F0); padding:52px 48px; display:flex; flex-direction:column; justify-content:center; }
.df-cat-hero__eyebrow{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--df-gold-500,#D9A521); display:flex; align-items:center; gap:9px; margin:0 0 16px; }
.df-cat-hero__eyebrow::before{ content:""; width:26px; height:2px; background:var(--df-gold-500,#D9A521); }
.df-cat-hero__txt h1{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:2.6rem; line-height:1.08; color:#fff; margin:0 0 16px; }
.df-cat-hero__desc{ color:rgba(255,255,255,.85); font-size:1.05rem; line-height:1.6; margin:0 0 28px; max-width:42ch; }
.df-cat-hero__desc p{ margin:0 0 10px; }
.df-cat-hero__desc p:last-child{ margin-bottom:0; }
.df-cat-hero__cta{ align-self:flex-start; background:var(--df-clay-700,#B5532A); color:#fff; border:none; border-radius:999px; padding:14px 28px; font:inherit; font-weight:700; cursor:pointer; box-shadow:0 8px 20px rgba(181,83,42,.32); text-decoration:none; }
.df-cat-hero__sprig{ position:absolute; right:-22px; bottom:-26px; width:150px; color:var(--df-gold-500,#D9A521); opacity:.2; }
.df-cat-hero__img{ position:relative; background:linear-gradient(150deg,var(--df-clay-100,#F7E7DD),var(--df-sand,#EFE7DA) 55%,var(--df-forest-100,#E4EDE7)); display:grid; place-items:center; overflow:hidden; }
.df-cat-hero__photo{ width:100%; height:100%; object-fit:cover; display:block; }
.df-cat-hero__illu{ width:46%; color:var(--df-forest-700,#2E5A41); opacity:.5; }
@media (max-width:820px){ .df-cat-hero__box{ grid-template-columns:1fr; } .df-cat-hero__img{ min-height:200px; order:-1; } .df-cat-hero__txt{ padding:36px 28px; } .df-cat-hero__txt h1{ font-size:2.1rem; } }

/* cerchi sottocategorie */
.df-cat-occ{ padding:54px 0 40px; }
.df-cat-occ__row{ display:grid; grid-template-columns:repeat(6,1fr); gap:22px; }
.df-cat-occ__item{ text-align:center; text-decoration:none; color:var(--df-forest-900,#1E3A2B); }
.df-cat-occ__circle{ width:100%; aspect-ratio:1; border-radius:50%; overflow:hidden; background:var(--df-forest-100,#E4EDE7); display:grid; place-items:center; box-shadow:inset 0 0 0 1px rgba(217,165,33,.55), 0 10px 24px rgba(30,58,43,.1); transition:transform .16s ease, box-shadow .16s ease; }
.df-cat-occ__item:hover .df-cat-occ__circle{ transform:translateY(-4px); box-shadow:inset 0 0 0 1px rgba(217,165,33,.55), 0 16px 30px rgba(30,58,43,.16); }
.df-cat-occ__photo{ width:100%; height:100%; object-fit:cover; }
.df-cat-occ__circle svg{ width:50%; height:50%; color:var(--df-forest-700,#2E5A41); }
.df-cat-occ__label{ display:block; margin-top:13px; font-weight:600; font-size:.97rem; }
@media (max-width:820px){ .df-cat-occ__row{ grid-template-columns:repeat(3,1fr); gap:20px 14px; } }
@media (max-width:430px){ .df-cat-occ__row{ grid-template-columns:repeat(2,1fr); } }

/* rassicurazioni */
.df-cat-tris{ background:var(--df-paper,#fff); border-top:1px solid var(--df-stone-300,#DCD4C7); padding:52px 0; margin-top:30px; }
.df-cat-tris__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.df-cat-tris__cell{ background:var(--df-cream,#FAF6F0); border-radius:var(--df-radius-lg,22px); padding:30px 24px; text-align:center; border-top:3px solid var(--df-gold-500,#D9A521); box-shadow:0 12px 30px rgba(30,58,43,.07); }
.df-cat-tris__badge{ display:inline-grid; place-items:center; width:62px; height:62px; border-radius:50%; background:var(--df-forest-100,#E4EDE7); color:var(--df-forest-700,#2E5A41); margin-bottom:14px; }
.df-cat-tris__badge svg{ width:30px; height:30px; }
.df-cat-tris h3{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:1.18rem; color:var(--df-forest-900,#1E3A2B); margin:0 0 6px; }
.df-cat-tris p{ margin:0; color:var(--df-stone-600,#6B6357); font-size:.93rem; }
@media (max-width:780px){ .df-cat-tris__grid{ grid-template-columns:1fr; gap:18px; } }

/* banda brand */
.df-cat-brand{ position:relative; overflow:hidden; background:var(--df-forest-900,#1E3A2B); color:var(--df-cream,#FAF6F0); }
.df-cat-brand__in{ position:relative; z-index:1; max-width:720px; margin:0 auto; padding:58px 24px; text-align:center; }
.df-cat-brand__eyebrow{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--df-gold-500,#D9A521); margin:0 0 12px; }
.df-cat-brand h2{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:2.1rem; color:#fff; margin:0 0 12px; }
.df-cat-brand p{ color:rgba(255,255,255,.82); margin:0; }
.df-cat-brand__l,.df-cat-brand__r{ position:absolute; width:175px; color:var(--df-gold-500,#D9A521); opacity:.2; }
.df-cat-brand__l{ left:-26px; bottom:-26px; }
.df-cat-brand__r{ right:-26px; top:-26px; transform:scaleX(-1); }

/* --- Sezione "due strade" (categoria Condoglianze) — stile card DevinFlora --- */
.df-dual{ background:var(--df-cream,#FAF6F0); padding:60px 16px; }
.df-dual__wrap{ max-width:1080px; margin:0 auto; }
.df-dual__head{ max-width:640px; margin:0 0 28px; }
.df-dual__eyebrow{ font-size:.74rem; letter-spacing:.2em; text-transform:uppercase; font-weight:700; color:var(--df-clay-700,#B5532A); margin:0 0 10px; }
.df-dual__title{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:2rem; line-height:1.15; color:var(--df-forest-900,#1E3A2B); margin:0; }
.df-dual__grid{ display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.df-dual__card{ position:relative; overflow:hidden; border-radius:22px; padding:34px 32px; display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.df-dual__card--a{ background:var(--df-forest-100,#E4EDE7); }
.df-dual__card--b{ background:var(--df-sand,#EFE7DA); }
.df-dual__sprig{ position:absolute; width:150px; top:-22px; right:-22px; color:var(--df-gold-500,#D9A521); opacity:.16; transform:scaleX(-1); pointer-events:none; }
.df-dual__badge{ position:relative; width:58px; height:58px; border-radius:50%; background:var(--df-paper,#fff); display:inline-flex; align-items:center; justify-content:center; box-shadow:0 6px 16px rgba(30,58,43,.10); }
.df-dual__badge svg{ width:30px; height:30px; }
.df-dual__card h3{ position:relative; font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:1.45rem; color:var(--df-forest-900,#1E3A2B); margin:0; }
.df-dual__card p{ position:relative; color:var(--df-stone-600,#6B6357); margin:0; line-height:1.6; max-width:42ch; }
.df-dual__cta{ position:relative; margin-top:6px; display:inline-flex; align-items:center; gap:8px; background:var(--df-clay-700,#B5532A); color:#fff; border-radius:999px; padding:12px 26px; font-weight:700; text-decoration:none; box-shadow:0 8px 20px rgba(181,83,42,.28); transition:transform .15s, box-shadow .15s; }
.df-dual__cta:hover{ transform:translateY(-1px); box-shadow:0 11px 24px rgba(181,83,42,.34); }
@media(max-width:760px){
	.df-dual{ padding:44px 16px; }
	.df-dual__title{ font-size:1.7rem; }
	.df-dual__grid{ grid-template-columns:1fr; gap:14px; }
	.df-dual__card{ padding:28px 24px; }
}

/* --- Tracking ordine: timeline stato (lato cliente) --- */
.df-track{ background:var(--df-cream,#FAF6F0); border:1px solid var(--df-forest-100,#E4EDE7); border-radius:16px; padding:22px 20px 26px; margin:0 0 26px; }
.df-track__head{ text-align:center; margin-bottom:22px; }
.df-track__eyebrow{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--df-clay-700,#B5532A); font-weight:700; margin:0 0 6px; }
.df-track__title{ font-family:var(--df-font-display,"Fraunces"); font-weight:600; font-size:1.5rem; line-height:1.2; color:var(--df-forest-900,#1E3A2B); margin:0; }
.df-track__sub{ color:var(--df-stone-600,#6B6357); margin:7px 0 0; }
.df-track__steps{ list-style:none; margin:0 auto; padding:0; display:flex; max-width:560px; }
.df-track__step{ flex:1; position:relative; text-align:center; }
.df-track__step::before{ content:""; position:absolute; top:16px; left:-50%; width:100%; height:3px; background:var(--df-stone-300,#DCD4C7); z-index:0; }
.df-track__step:first-child::before{ display:none; }
.df-track__step.is-done::before, .df-track__step.is-current::before{ background:var(--df-forest-600,#386B4E); }
.df-track__dot{ position:relative; z-index:1; display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%; background:#fff; border:3px solid var(--df-stone-300,#DCD4C7); color:var(--df-stone-400,#A89F90); font-weight:700; font-size:.95rem; }
.df-track__step.is-done .df-track__dot{ background:var(--df-forest-600,#386B4E); border-color:var(--df-forest-600,#386B4E); color:#fff; }
.df-track__step.is-current .df-track__dot{ border-color:var(--df-forest-600,#386B4E); color:var(--df-forest-700,#2E5A41); box-shadow:0 0 0 4px var(--df-forest-100,#E4EDE7); }
.df-track__lbl{ display:block; margin-top:8px; font-size:.82rem; font-weight:600; color:var(--df-forest-900,#1E3A2B); line-height:1.25; padding:0 2px; }
.df-track__step:not(.is-done):not(.is-current) .df-track__lbl{ color:var(--df-stone-400,#A89F90); }
.df-track__note{ text-align:center; color:var(--df-clay-800,#8C3F1E); margin:18px 0 0; font-weight:600; }
@media(max-width:480px){
	.df-track__title{ font-size:1.25rem; }
	.df-track__dot{ width:30px; height:30px; font-size:.85rem; }
	.df-track__lbl{ font-size:.72rem; }
}

/* Foto reale al posto dell'illustrazione nella sezione "Come funziona". */
.df-frame__img--photo{ background:none; }
.df-frame__photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
