/*
 Theme Name:   Astra Child
 Template:     astra
  Version: 1.4.5
*/

/* ============================================================
   DIGESÙ – Header Responsive · Astra Child Theme
   Copertura desktop: 1025 px → 2560 px+
   Tecnica: CSS custom properties + clamp() + Flexbox puro
   Zero JS, zero dipendenze, impatto performance nullo
   ============================================================ */

/* ── 0. Variabili CSS ─────────────────────────────────────── */
:root {
  /* Brand */
  --dgp-accent:            #e31e24;

  /* Colori header */
  --dgp-header-above-bg:   #f5f5f5;
  --dgp-header-above-text: #555555;
  --dgp-header-bg:         #ffffff;
  --dgp-header-border:     #e2e2e2;
  --dgp-header-below-bg:   #2c2c2c;
  --dgp-header-below-text: #ffffff;

  /* Dimensioni fluide con clamp(min, preferred, max) */
  --dgp-logo-max-w:   clamp(110px, 10vw, 180px);
  --dgp-header-h:     clamp(132px, 12vw, 180px);
  --dgp-below-h:      clamp(38px, 3.2vw, 52px);

  /* Spaziature laterali contenitore */
  --dgp-px:           clamp(16px, 2.5vw, 60px);

  /* Gap tra elementi */
  --dgp-gap-sm:       clamp(6px,  0.7vw, 14px);
  --dgp-gap-md:       clamp(10px, 1.2vw, 24px);

  /* Search bar */
  --dgp-search-min:   clamp(140px, 12vw, 200px);
  --dgp-search-max:   clamp(200px, 22vw, 500px);

  /* Tipografia fluida */
  --dgp-fs-menu:      clamp(11.5px, 0.85vw, 15px);
  --dgp-fs-below:     clamp(10.5px, 0.78vw, 13.5px);
  --dgp-fs-top:       clamp(11px,   0.72vw, 13px);
}

/* ── 1. Contenitore Astra (override padding fisso) ────────── */
#ast-desktop-header .ast-container {
  width: 100%         !important;
  max-width: 100%     !important;
  padding-left:  var(--dgp-px) !important;
  padding-right: var(--dgp-px) !important;
  box-sizing: border-box !important;
}

/* ── 2. Griglia di riga (ast-builder-grid-row) ────────────── */
#ast-desktop-header .ast-builder-grid-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: var(--dgp-gap-md);
  width: 100%;
  box-sizing: border-box;
}

/* Colonne della griglia */
#ast-desktop-header .site-header-section {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  min-width: 0; /* consente shrink sotto il valore nominale */
  box-sizing: border-box;
}

/* Left → non cresce, non si restringe → tiene il logo fisso */
#ast-desktop-header .site-header-primary-section-left,
#ast-desktop-header .site-header-above-section-left,
#ast-desktop-header .site-header-below-section-left {
  flex: 0 0 auto;
}

/* Center → cresce per riempire lo spazio disponibile */
#ast-desktop-header .site-header-primary-section-center,
#ast-desktop-header .site-header-above-section-center,
#ast-desktop-header .site-header-below-section-center {
  flex: 1 1 0%;
  justify-content: center;
  min-width: 0;
}

/* Right → non cresce, si restringe solo se strettamente necessario */
#ast-desktop-header .site-header-primary-section-right,
#ast-desktop-header .site-header-above-section-right,
#ast-desktop-header .site-header-below-section-right {
  flex: 0 1 auto;
  justify-content: flex-end;
  gap: var(--dgp-gap-sm);
  min-width: 0;
}

/* Sub-colonne left-center / right-center di Astra */
#ast-desktop-header .ast-grid-left-center-section,
#ast-desktop-header .ast-grid-right-center-section {
  flex: 1 1 0%;
  min-width: 0;
}

/* ── 3. ABOVE HEADER (barra superiore) ───────────────────── */

/*
 * FIX STRISCIA BIANCA:
 * La barra "above header" di Astra è vuota ma mantiene
 * altezza e padding → genera la striscia bianca in cima.
 * Viene nascosta completamente con display:none.
 * Se in futuro si vuole riattivare basterà rimuovere queste righe.
 */
.ast-above-header-wrap {
  display: none !important;
}

/* HTML widget nella top bar (WhatsApp, email, …) */
.ast-header-html-1,
.ast-header-html-2 {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ast-header-html-1 *,
.ast-header-html-2 * {
  font-size: var(--dgp-fs-top) !important;
  line-height: 1.4;
}

.ast-header-html-1 a,
.ast-header-html-2 a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  color: var(--dgp-header-above-text);
  text-decoration: none;
}

/* ── 4. PRIMARY HEADER (riga principale) ─────────────────── */
.ast-primary-header-bar,
.main-header-bar {
  background: var(--dgp-header-bg);
  border-bottom: 1px solid var(--dgp-header-border);
}

.site-primary-header-wrap {
  min-height: var(--dgp-header-h);
  padding-top: 0;
  padding-bottom: 0;
}

/* ── 5. LOGO ──────────────────────────────────────────────── */
.ast-site-identity {
  flex-shrink: 0;
  line-height: 1;
}

.ast-site-identity img,
.custom-logo-link img,
.site-logo-img img {
  max-width: var(--dgp-logo-max-w);
  width: auto;
  height: auto;
  max-height: calc(var(--dgp-header-h) - 16px);
  display: block;
  object-fit: contain;
}

/* ── 6. MENU PRINCIPALE (menu-1) ──────────────────────────── */
.ast-builder-menu-1 {
  min-width: 0;
}

.ast-builder-menu-1 .main-navigation,
.ast-builder-menu-1 .ast-main-navigation {
  display: flex;
  align-items: center;
}

.ast-builder-menu-1 ul.ast-nav-menu,
.ast-builder-menu-1 ul.main-navigation-menu {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.ast-builder-menu-1 ul.ast-nav-menu > li > a {
  font-size: var(--dgp-fs-menu);
  padding: 0 clamp(8px, 0.9vw, 18px);
  height: var(--dgp-header-h);
  display: flex;
  align-items: center;
  white-space: nowrap;
  text-decoration: none;
  transition: color 0.2s ease;
  box-sizing: border-box;
}

/* Separatore visivo opzionale tra voci menu */
.ast-builder-menu-1 ul.ast-nav-menu > li:not(:first-child) > a {
  border-left: 1px solid transparent;
}

/* ── 7. SEARCH BAR ────────────────────────────────────────── */

/*
 * FIX ALLINEAMENTO VERTICALE (Elementor Search widget):
 * Il widget Elementor e-search contiene un <form class="e-search-form">
 * che ha un margin-bottom ~26px ereditato dal browser/Elementor.
 * Questo margin gonfia l'altezza del widget a 70px (uguale alla riga)
 * e fa partire il form dall'alto invece di centrarlo.
 * Azzerare il margin-bottom riporta il widget a 44px e lo centra.
 */
.elementor-location-header .e-search-form {
  margin-bottom: 0 !important;
}

/*
 * FIX LEGACY (Astra native header builder – lasciato per retrocompatibilità):
 * Astra imposta align-items: stretch sul wrapper della riga,
 * facendo "salire" la search bar al margine superiore.
 * Si forza align-items: center su tutti i livelli coinvolti.
 */
#ast-desktop-header .ast-builder-grid-row,
#ast-desktop-header .site-primary-header-wrap,
#ast-desktop-header .site-header-primary-section-left,
#ast-desktop-header .site-header-primary-section-center,
#ast-desktop-header .site-header-primary-section-right,
#ast-desktop-header .ast-grid-left-center-section,
#ast-desktop-header .ast-grid-right-center-section {
  align-items: center !important;
}

.ast-header-search {
  flex: 1 1 var(--dgp-search-min);
  min-width: var(--dgp-search-min);
  max-width: var(--dgp-search-max);
  align-self: center !important;  /* override esplicito align-self */
  display: flex !important;
  align-items: center !important;
}

.ast-header-search .search-form,
.ast-header-search form[role="search"] {
  width: 100%;
  display: flex;
  align-items: center;
  align-self: center;
  position: relative;
  margin: 0 !important;   /* rimuove eventuali margin Astra che spostano in alto */
  padding: 0 !important;
}

.ast-header-search .search-field,
.ast-header-search input[type="search"],
.ast-header-search input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #d0d0d0;
  border-radius: 5px;
  padding: 7px 38px 7px 12px;
  font-size: clamp(12px, 0.8vw, 14px);
  background: #fafafa;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  line-height: 1.4;
}

.ast-header-search .search-field:focus,
.ast-header-search input[type="search"]:focus {
  border-color: var(--dgp-accent);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(227,30,36,.10);
}

.ast-header-search .search-submit,
.ast-header-search button[type="submit"] {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: #888;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ast-header-search .search-submit:hover,
.ast-header-search button[type="submit"]:hover {
  color: var(--dgp-accent);
}

/* ── 8. ACCOUNT / LOGIN ───────────────────────────────────── */
.ast-header-account {
  flex-shrink: 0;
}

.ast-header-account .ast-header-account-link,
.ast-header-account a {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
  font-size: clamp(12px, 0.8vw, 14px);
  text-decoration: none;
}

.ast-header-account svg,
.ast-header-account img {
  width: clamp(18px, 1.4vw, 24px);
  height: auto;
  flex-shrink: 0;
}

/* ── 9. CARRELLO (WooCommerce) ───────────────────────────── */
.ast-header-woo-cart {
  flex-shrink: 0;
}

.ast-header-woo-cart .ast-cart-menu-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
  position: relative;
}

.ast-header-woo-cart svg,
.ast-header-woo-cart .ast-icon {
  width: clamp(20px, 1.5vw, 26px);
  height: auto;
}

.ast-header-woo-cart .count {
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  min-width: 16px;
  height: 16px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: -5px;
  right: -6px;
}

/* ── 10. BELOW HEADER (Barra Categorie) ──────────────────── */
.ast-below-header-bar {
  background: var(--dgp-header-below-bg);
  color: var(--dgp-header-below-text);
}

.site-below-header-wrap {
  min-height: var(--dgp-below-h);
  padding-top: 0;
  padding-bottom: 0;
}

/* Usa tutta la larghezza disponibile */
.ast-below-header-bar .ast-builder-grid-row {
  gap: 0;
}

.ast-below-header-bar .site-header-below-section-left,
.ast-below-header-bar .site-header-below-section-center,
.ast-below-header-bar .site-header-below-section-right {
  flex: 1 1 0%;
  width: 100%;
  min-width: 0;
}

/* ── 11. MENU CATEGORIE (menu-2, below header) ────────────── */
.ast-builder-menu-2 {
  width: 100%;
  min-width: 0;
}

.ast-builder-menu-2 .main-navigation,
.ast-builder-menu-2 .ast-main-navigation {
  width: 100%;
  display: flex;
  align-items: center;
}

.ast-builder-menu-2 ul.ast-nav-menu,
.ast-builder-menu-2 ul.main-navigation-menu {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: space-between; /* distribuzione equa su tutta la barra */
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  gap: 0;
}

.ast-builder-menu-2 ul.ast-nav-menu > li {
  flex: 1 1 0%;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
}

.ast-builder-menu-2 ul.ast-nav-menu > li > a {
  font-size: var(--dgp-fs-below);
  height: var(--dgp-below-h);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--dgp-header-below-text);
  text-transform: uppercase;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-decoration: none;
  padding: 0 clamp(6px, 0.8vw, 14px);
  transition: background 0.2s ease;
  box-sizing: border-box;
}

.ast-builder-menu-2 ul.ast-nav-menu > li > a:hover,
.ast-builder-menu-2 ul.ast-nav-menu > li.current-menu-item > a {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

/* Separatori verticali tra voci categorie */
.ast-builder-menu-2 ul.ast-nav-menu > li:not(:last-child) > a {
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}

/* ── 12. FIX ASTRA GLOBALI ────────────────────────────────── */

/* Rimuove overflow indesiderato */
#ast-desktop-header {
  overflow: visible;
}

/* Allineamento verticale garantito su tutti i wrapper */
#ast-desktop-header .ast-flex {
  display: flex !important;
  align-items: center !important;
}

/* Elimina margini extra su elementi inline Astra */
#ast-desktop-header .ast-builder-layout-element {
  margin-top:    0;
  margin-bottom: 0;
  align-self:    center !important; /* fix: wrapper search e altri elementi non vanno in cima */
  display:       flex   !important;
  align-items:   center !important;
}

/* Nessun padding extra sui wrap di riga */
.site-primary-header-wrap.ast-builder-grid-row-container,
.site-above-header-wrap.ast-builder-grid-row-container,
.site-below-header-wrap.ast-builder-grid-row-container {
  padding-top:    0;
  padding-bottom: 0;
}

/* ── 13. TASTO LOGIN e TASTO CARRELLO (iniettati via PHP) ─── */

/*
 * Questi stili coprono i bottoni .dgp-btn-account e .dgp-btn-cart
 * aggiunti tramite l'hook astra_render_header_column in functions.php.
 * Appaiono all'estrema destra della primary header row.
 */

.dgp-btn-account,
.dgp-btn-cart {
  display:        inline-flex;
  align-items:    center;
  gap:            5px;
  padding:        6px clamp(9px, 0.8vw, 14px);
  border-radius:  5px;
  font-size:      clamp(12px, 0.78vw, 13.5px);
  font-weight:    500;
  white-space:    nowrap;
  text-decoration: none;
  flex-shrink:    0;
  line-height:    1;
  transition:     background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

/* Icone SVG dentro i tasti */
.dgp-btn-account svg,
.dgp-btn-cart    svg {
  width:       clamp(15px, 1.1vw, 18px);
  height:      auto;
  flex-shrink: 0;
  stroke:      currentColor;
}

/* Tasto Login/Account → outline stile ghost */
.dgp-btn-account {
  color:        #333333;
  border:       1px solid #d0d0d0;
  background:   #ffffff;
}
.dgp-btn-account:hover {
  border-color: var(--dgp-accent);
  color:        var(--dgp-accent);
  background:   #fff5f5;
}

/* Tasto Carrello → pieno col colore brand */
.dgp-btn-cart {
  background:   var(--dgp-accent);
  color:        #ffffff;
  border:       1px solid var(--dgp-accent);
  position:     relative;
}
.dgp-btn-cart:hover {
  background:   #c01820;
  border-color: #c01820;
  color:        #ffffff;
}

/* Badge numerico sul carrello */
.dgp-cart-badge {
  display:         flex;
  align-items:     center;
  justify-content: center;
  background:      #ffffff;
  color:           var(--dgp-accent);
  min-width:       17px;
  height:          17px;
  border-radius:   50%;
  font-size:       10px;
  font-weight:     700;
  line-height:     1;
  padding:         0 2px;
}

/* ── 0-quater. SFONDO PAGINA ─────────────────────────────────── */
body {
  background-color: #eef1f5 !important;
}

/* ── 0-quinquies. BADGE BAR: allineata ai bordi dell'hero ──────── */
.dg-badge-bar {
  justify-content: space-between !important;
  padding:         0 8px         !important;
}

/* ── 0-quinquies. FOOTER: stesso colore dell'header ─────────── */
/* Astra nativo */
.site-footer,
#colophon,
.ast-footer-overlay,
.footer-widget-area,
.ast-small-footer,
.ast-small-footer-wrap,
/* Elementor Theme Builder footer + shortcode footer (.dgf-footer) */
.elementor-location-footer,
.elementor-location-footer *:not(img):not(svg):not(a):not(span):not(p):not(h1):not(h2):not(h3):not(h4):not(li):not(ul),
.dgf-footer,
.dgf-footer *:not(img):not(svg):not(a):not(span):not(p):not(h1):not(h2):not(h3):not(h4):not(li):not(ul) {
  background-color: #1b3248 !important;
  background-image: none    !important;
}
.elementor-location-footer,
.dgf-footer {
  color: #ffffff !important;
}

/* ── 0-ter. HERO: stesso colore dell'header ──────────────────
 *
 * L'header ha background: rgb(27,50,72) (#1b3248).
 * Il gradiente originale dell'hero viene sostituito con
 * lo stesso colore piatto per uniformità visiva.
 */
.dg-hero {
  background:       #1b3248 !important;
  background-image: none    !important;
}

/* ── 0-bis. FIX STRISCIA BIANCA SOPRA L'HEADER ───────────────
 *
 * WordPress aggiunge margin-top:32px al tag <html> quando la
 * Admin Bar è attiva (classe .wp-toolbar).  L'Admin Bar stessa
 * può essere nascosta dal tema, ma il margine rimane e crea
 * una striscia bianca visibile in cima alla pagina.
 * Resettiamo sia il margine che la barra.
 */
html,
html.wp-toolbar {
  margin-top:  0 !important;
  padding-top: 0 !important;
}
#wpadminbar {
  display: none !important;
}

/* ══════════════════════════════════════════════════════════
   SEZIONE ELEMENTOR HEADER
   L'header è costruito con Elementor Theme Builder.
   I selettori qui sotto sovrascrivono sia Elementor che Astra
   per garantire allineamento verticale e nessun overflow.
   ══════════════════════════════════════════════════════════ */

/* ── A. FIX OVERFLOW: tasti login/carrello fuori dal margine ─
 *
 * Elementor imposta overflow:hidden su sezioni e container,
 * tagliando gli elementi che escono dalla larghezza allocata.
 * Forziamo overflow:visible a tutti i livelli dell'header.
 */
.elementor-location-header,
.elementor-location-header .elementor-section,
.elementor-location-header .elementor-section > .elementor-container,
.elementor-location-header .e-container,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner,
.elementor-location-header .elementor-column,
.elementor-location-header .elementor-column-wrap,
.elementor-location-header .elementor-widget-wrap {
  overflow: visible !important;
}

/* Larghezza piena senza clip laterali */
.elementor-location-header .elementor-section > .elementor-container {
  max-width: 100% !important;
  width:      100% !important;
}

/* ── B. ALLINEAMENTO VERTICALE search bar e tutti i widget ──
 *
 * Elementor usa align-items: stretch di default nelle colonne,
 * causando lo scivolamento verso l'alto della search bar.
 * Imponiamo align-items: center su ogni livello della colonna.
 */
.elementor-location-header .elementor-column,
.elementor-location-header .elementor-column > .elementor-column-wrap,
.elementor-location-header .elementor-column > .elementor-column-wrap > .elementor-widget-wrap,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner {
  align-items:   center !important;
  align-content: center !important;
}

/* Ogni singolo widget centrato verticalmente nella sua cella */
.elementor-location-header .elementor-widget {
  align-self: center !important;
}

/* ── C. FIX SPECIFICO SEARCH BAR ────────────────────────────
 *
 * Il widget search (sia Elementor che WooCommerce search) deve
 * essere centrato e non stirarsi in altezza.
 */
.elementor-location-header .elementor-widget-search-form,
.elementor-location-header .elementor-widget-search-form .elementor-widget-container,
.elementor-location-header .elementor-widget-wp-widget-search,
.elementor-location-header .elementor-widget-wp-widget-search .elementor-widget-container,
.elementor-location-header .elementor-widget-woocommerce-searchform,
.elementor-location-header .elementor-widget-woocommerce-searchform .elementor-widget-container {
  display:     flex   !important;
  align-items: center !important;
  align-self:  center !important;
  width:       100%   !important;
  height:      auto   !important;
}

/* ── D. COLONNA DESTRA: larghezza auto per non tagliare i tasti
 *
 * La colonna più a destra deve avere width auto così accoglie
 * tutti i widget (contatti + login + carrello) senza overflow.
 */
.elementor-location-header .elementor-section .elementor-column:last-child,
.elementor-location-header .e-con > .e-con:last-child {
  flex:       0 0 auto !important;
  width:      auto     !important;
  max-width:  none     !important;
  flex-shrink: 0       !important;
}

/* ── E. FIX FLEXBOX RIGA PRINCIPALE ─────────────────────────
 *
 * La riga principale dell'header deve distribuire le colonne
 * in flex senza wrap, con allineamento verticale centrato.
 */
.elementor-location-header .elementor-section > .elementor-container,
.elementor-location-header .e-con-inner {
  display:     flex       !important;
  flex-wrap:   nowrap     !important;
  align-items: center     !important;
  gap:         var(--dgp-gap-md);
}

/* ── F. COLONNA CENTRALE (search): si espande per riempire ─ */
.elementor-location-header .elementor-section .elementor-column:not(:first-child):not(:last-child),
.elementor-location-header .e-con > .e-con:not(:first-child):not(:last-child) {
  flex:      1 1 0%  !important;
  min-width: 0       !important;
}

/* ── G. BELOW HEADER ELEMENTOR (barra categorie scura) ─────
 *
 * Se la barra delle categorie è anch'essa una sezione Elementor,
 * manteniamo il testo centrato e il bg scuro.
 */
.elementor-location-header .elementor-section.elementor-section-below,
.elementor-location-header [data-id] .elementor-section:last-of-type {
  background: var(--dgp-header-below-bg) !important;
}

/* ── I. FIX CONTAINER INTERNO ELEMENTOR ─────────────────────
 *
 * Il container esterno (.e-con-full.e-parent) usa justify-content:
 * space-between, spingendo logo a sinistra e contenuto a destra
 * con un enorme spazio vuoto in mezzo.
 * Il container interno (.e-con.e-child) ha flex-grow:0 e si
 * ferma a ~1086px, ammassando tutto il contenuto sulla destra.
 *
 * FIX:
 *   1. Override justify-content → flex-start sul parent
 *   2. flex:1 1 0% sul child per riempire tutto lo spazio
 */
.elementor-location-header .e-con-full.e-parent {
  justify-content: flex-start !important;
  align-items:     center     !important;
  gap:             var(--dgp-gap-md) !important;
}

.elementor-location-header .e-con-full.e-parent > .e-con.e-child {
  flex:        1 1 0%  !important;
  min-width:   0       !important;
  max-width:   none    !important;
  width:       auto    !important;
  /* stretch → le righe interne (top row, categories row) riempiono tutta la larghezza */
  align-items: stretch !important;
}

.elementor-location-header .e-con-full.e-parent > .e-con.e-child > .e-con-inner {
  width:     100% !important;
  max-width: 100% !important;
  flex-wrap: nowrap !important;
}

/* Righe interne (top row + categories row): larghezza piena + allineamento verticale centrato */
.elementor-location-header .e-con-full.e-parent > .e-con.e-child > .e-con.e-child {
  width:       100% !important;
  max-width:   100% !important;
  align-items: center !important;
}

/* ── H. WIDGET NAV MENU ELEMENTOR ───────────────────────────
 *
 * Il menu di navigazione Elementor usa .elementor-nav-menu.
 * Assicura che i link siano centrati e non vadano a capo.
 */
/* ── J. FIX TOP ROW: search flessibile + contatti a destra ──
 *
 * La top row usa justify-content:space-between con 3 elementi:
 * menu | search | contatti. Con space-between i contatti
 * iniziano molto a sinistra rispetto a Login/Carrello sotto.
 *
 * Fix:
 *  1. Top row → flex-start + gap
 *  2. Search bar → flex:1 (riempie il centro)
 *  3. Contatti → flex:0 auto, spinti a destra con margin-left:auto
 *  4. Inner div dei contatti → inline-flex (non si espande)
 *
 * NOTA: i selettori data-id sono specifici di questa
 * configurazione Elementor e non cambiano a meno che
 * l'utente non elimini e ricrei i widget nell'editor.
 */
[data-id="062b570"] {                        /* top row */
  justify-content: flex-start !important;
  gap:             clamp(16px, 1.5vw, 32px) !important;
}
[data-id="80bdfb9"] {                        /* search bar widget */
  flex: 1 1 0% !important;
  min-width: 0  !important;
}
[data-id="b47c564"] {                        /* contatti (WhatsApp/email/Dove siamo) */
  flex:        0 0 auto !important;
  margin-left: auto     !important;
  max-width:   fit-content !important;
}
[data-id="b47c564"] > div {                  /* div interno HTML widget */
  display:    inline-flex !important;
  width:      auto        !important;
  gap:        clamp(10px, 1vw, 18px) !important;
}

/* RESPONSIVE CONTATTI */
.elementor-location-header .e-con > .e-con[data-id="b47c564"] {
  flex-shrink: 1   !important;
  min-width:   0   !important;
  overflow:    hidden !important;
}
.elementor-location-header .elementor-nav-menu {
  display:     flex !important;
  align-items: center !important;
  flex-wrap:   nowrap !important;
}

.elementor-location-header .elementor-nav-menu > li > a {
  display:     flex       !important;
  align-items: center     !important;
  white-space: nowrap     !important;
  font-size:   var(--dgp-fs-menu) !important;
}

/* ── Fix z-index header sopra tutto ─────────────────────── */
.elementor-location-header,
#ast-desktop-header,
.main-header-bar,
.ast-primary-header-bar,
.ast-below-header-bar {
  position: relative !important;
  z-index: 9999 !important;
}

/* ── Fix z-index tab box sotto l'header ─────────────────── */
body.single-product .dgp5-tabs,
body.single-product .dgp5-below,
body.single-product .dgp5-panel {
  position: relative !important;
  z-index: 1 !important;
}

/* ── 13-bis. TOP BAR SPEDIZIONE (pagina prodotto) ──────────── */
.dgp5-topbar {
  background: #1565c0;
  color: #ffffff;
  text-align: center;
  padding: 8px 20px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.3px;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-bottom: 0;
  font-family: 'Outfit', sans-serif;
}
.dgp5-topbar a {
  color: #ffffff;
  text-decoration: underline;
}

/* ── 13-ter. SHARE BUTTONS (sotto galleria prodotto) ─────── */
.dgp5-share-row {
  display: flex;
  gap: 10px;
  margin-top: 14px;
  align-items: center;
}
.dgp5-share-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 6px;
  border: none;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: #ffffff;
  text-decoration: none;
  font-family: 'Outfit', sans-serif;
  transition: opacity 0.2s;
  line-height: 1;
}
.dgp5-share-btn:hover { opacity: 0.85; color: #ffffff; }
.dgp5-share-fb { background: #1877f2; }
.dgp5-share-ig { background: linear-gradient(135deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888); }

/* ── 14. MEDIA QUERIES DESKTOP ────────────────────────────── */

/* Laptop stretto (1025 – 1279 px) ─────────────────────────── */
@media (min-width: 1025px) and (max-width: 1279px) {
  :root {
    --dgp-logo-max-w:  clamp(100px, 9vw, 130px);
    --dgp-header-h:    clamp(56px, 5vw, 64px);
    --dgp-below-h:     clamp(36px, 3vw, 42px);
    --dgp-px:          clamp(14px, 2vw, 28px);
    --dgp-gap-md:      clamp(8px, 1vw, 16px);
    --dgp-search-min:  130px;
    --dgp-search-max:  240px;
    --dgp-fs-menu:     clamp(11px, 0.82vw, 13px);
    --dgp-fs-below:    clamp(10px, 0.74vw, 11.5px);
  }
  .ast-builder-menu-1 ul.ast-nav-menu > li > a {
    padding: 0 clamp(6px, 0.65vw, 11px);
  }
  /* Contatti font */
  .elementor-location-header .e-con>.e-con[data-id="b47c564"] * { font-size: clamp(10px, 1.1vw, 14px) !important; }

}

/* Desktop standard (1280 – 1439 px) ───────────────────────── */
@media (min-width: 1280px) and (max-width: 1439px) {
  :root {
    --dgp-logo-max-w:  clamp(120px, 9.5vw, 150px);
    --dgp-header-h:    clamp(62px, 5.2vw, 72px);
    --dgp-search-min:  160px;
    --dgp-search-max:  320px;
    --dgp-px:          clamp(20px, 2.2vw, 40px);
  }
  /* Contatti font */
  .elementor-location-header .e-con>.e-con[data-id="b47c564"] * { font-size: clamp(11px, 1.1vw, 15px) !important; }

}

/* Desktop largo (1440 – 1919 px) ──────────────────────────── */
@media (min-width: 1440px) and (max-width: 1919px) {
  :root {
    --dgp-logo-max-w:  clamp(140px, 10vw, 170px);
    --dgp-header-h:    clamp(68px, 5vw, 78px);
    --dgp-search-min:  190px;
    --dgp-search-max:  420px;
    --dgp-px:          clamp(28px, 3vw, 56px);
  }
  /* Contatti font */
  .elementor-location-header .e-con>.e-con[data-id="b47c564"] * { font-size: clamp(11px, 1vw, 16px) !important; }

}

/* Full HD 1920 px ──────────────────────────────────────────── */
@media (min-width: 1920px) and (max-width: 2559px) {
  :root {
    --dgp-logo-max-w:  clamp(160px, 10vw, 190px);
    --dgp-header-h:    clamp(72px, 4.5vw, 82px);
    --dgp-below-h:     clamp(44px, 2.8vw, 52px);
    --dgp-search-min:  240px;
    --dgp-search-max:  520px;
    --dgp-px:          clamp(40px, 3.5vw, 72px);
    --dgp-gap-md:      clamp(16px, 1.4vw, 28px);
    --dgp-fs-menu:     clamp(13px, 0.85vw, 15.5px);
    --dgp-fs-below:    clamp(11.5px, 0.75vw, 13.5px);
  }
}

/* 2 K / 4 K (2560 px+) ────────────────────────────────────── */
@media (min-width: 2560px) {
  :root {
    --dgp-logo-max-w:  clamp(180px, 9vw, 240px);
    --dgp-header-h:    clamp(78px, 4vw, 96px);
    --dgp-below-h:     clamp(48px, 2.5vw, 58px);
    --dgp-search-min:  300px;
    --dgp-search-max:  640px;
    --dgp-px:          clamp(60px, 4.5vw, 120px);
    --dgp-gap-md:      clamp(20px, 1.6vw, 36px);
    --dgp-fs-menu:     clamp(14px, 0.78vw, 17px);
    --dgp-fs-below:    clamp(12px, 0.68vw, 15px);
  }
}



/* ============================================================
   BLOG ARCHIVE — Di Gesu Ricambi
   ============================================================ */

/* Background */
.blog #content.site-content { background: #f2f3f5; }
.blog #main.site-main { padding-top: 0; }

/* Hero banner */
.blog #primary::before {
  content: "Blog";
  display: block;
  background: linear-gradient(160deg, #0f3460 0%, #16213e 50%, #1a1a2e 100%);
  color: #fff;
  font-size: clamp(28px, 3.5vw, 46px);
  font-family: inherit;
  font-weight: 800;
  text-align: center;
  padding: 56px 20px 48px;
  letter-spacing: -0.5px;
  margin-bottom: 40px;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  box-sizing: border-box;
}

/* Cards */
.blog .ast-article-inner {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 14px rgba(0,0,0,0.09);
  overflow: hidden;
  transition: transform 0.22s ease, box-shadow 0.22s ease;
  height: 100%;
}
.blog article.post { margin-bottom: 0 !important; padding-bottom: 0 !important; }
.blog article.post:hover .ast-article-inner {
  transform: translateY(-5px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.15);
}

/* Row spacing */
.blog .ast-row { row-gap: 24px; padding: 0 16px 40px; }
.blog .ast-grid-common-col { margin-bottom: 0 !important; }
.blog .post-content.ast-grid-common-col { padding: 18px 20px 20px; }

/* Category badge */
.blog .ast-taxonomy-container.cat-links a {
  background: #e8f5e9 !important;
  color: #1b7c3e !important;
  padding: 3px 11px !important;
  border-radius: 20px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.6px !important;
  text-decoration: none !important;
  display: inline-block !important;
  margin-bottom: 10px !important;
  border: none !important;
}

/* Title */
.blog h2.entry-title { font-size: 16px !important; font-weight: 700 !important; line-height: 1.35 !important; margin-bottom: 8px !important; margin-top: 0 !important; }
.blog h2.entry-title a { color: #1a1a2e !important; text-decoration: none !important; }
.blog h2.entry-title a:hover { color: #0f3460 !important; }

/* Meta — collapse text nodes (hides stray "/" ) */
.blog .entry-meta { font-size: 0 !important; color: transparent !important; }
.blog .entry-meta .posted-by.vcard.author { display: none !important; }
.blog .entry-meta .posted-on { font-size: 12px !important; color: #aaa !important; display: inline-block !important; margin-bottom: 10px !important; }
.blog .entry-meta .posted-on a, .blog .entry-meta .posted-on time { color: #aaa !important; text-decoration: none !important; font-size: 12px !important; }

/* Excerpt */
.blog .entry-content.clear p { font-size: 13.5px !important; color: #666 !important; line-height: 1.65 !important; margin: 0 !important; }

/* Read more */
.blog .ast-continue-reading a, .blog a.more-link {
  display: inline-block !important; margin-top: 16px !important;
  color: #0f3460 !important; font-size: 13px !important; font-weight: 600 !important;
  text-decoration: none !important; border-bottom: 2px solid #25D366 !important; padding-bottom: 1px !important;
}

/* Hide default archive header */
.blog .ast-archive-description, .blog .page-header { display: none !important; }






/* ============================================================
   HERO SPACING — gap tra header e hero
   ============================================================ */
body .elementor-351 .elementor-element.elementor-element-4021c19 {
  margin-top: 24px !important;
}

/* ============================================================
   BADGE BAR REDESIGN
   ============================================================ */
body .dg-badge-bar {
  background: #f0f6ff !important;
  border-bottom: 1px solid #c8d8f0 !important;
  padding: 0 !important;
  gap: 0 !important;
  justify-content: center !important;
}
body .dg-badge-bar .dg-badge {
  padding: 14px 32px !important;
  gap: 12px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #0f3460 !important;
  letter-spacing: 0.3px !important;
  border-right: 1px solid #c8d8f0 !important;
  transition: background 0.2s ease !important;
  text-transform: uppercase !important;
}
body .dg-badge-bar .dg-badge:hover {
  background: rgba(15, 52, 96, 0.07) !important;
}
body .dg-badge-bar .dg-badge:last-child {
  border-right: none !important;
}
body .dg-badge-bar .dg-badge .icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  background: #fff !important;
  border-radius: 50% !important;
  box-shadow: 0 1px 5px rgba(15,52,96,0.15) !important;
  font-size: 0 !important;
}
body .dg-badge-bar .dg-badge .icon img.emoji {
  width: 18px !important;
  height: 18px !important;
}

/* WhatsApp logo nel badge */
body .dg-badge-bar .dg-badge .icon img[alt="💬"] {
  display: none !important;
}
body .dg-badge-bar .dg-badge:has(img[alt="💬"]) .icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2325D366' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413z'/%3E%3C/svg%3E") !important;
  background-size: 20px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* Sezione "Categorie più cercate" nascosta */
.elementor-element-acac08a { display: none !important; }


/* ═══════════════════════════════════════════════════
   BLOG CUSTOM LAYOUT — DiGesù
═══════════════════════════════════════════════════ */
.blog #main .ast-row{display:none!important}
.blog #main{padding:0!important}
#dg-blog{max-width:1180px;margin:0 auto;padding:24px 24px 56px;box-sizing:border-box}
.dgp-title{font-family:'Barlow',sans-serif;font-size:clamp(26px,2.2vw,36px);font-weight:800;color:#1b3248;line-height:1.1;margin:0 0 6px;padding:0;letter-spacing:-.01em}
.dgp-lbl{font-size:11px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:#8898aa;margin:0 0 16px}
.dgp-hero{display:grid;grid-template-columns:1.4fr 1fr;background:#fff;border-radius:14px;overflow:hidden;border:1px solid #e4e8f0;margin-bottom:16px;text-decoration:none;color:inherit;transition:box-shadow .18s ease}
.dgp-hero:hover{box-shadow:0 8px 28px rgba(27,50,72,.12)}
.dgp-hero-img{overflow:hidden;background:#e8ecf1;display:flex;align-items:center;justify-content:center;min-height:220px}
.dgp-hero-thumb{width:100%;height:100%;object-fit:cover;display:block}
.dgp-ph{display:flex;align-items:center;justify-content:center;width:100%;min-height:220px;background:#1b3248}
.dgp-ph i{font-size:48px;color:rgba(255,255,255,.18)}
.dgp-hero-body{padding:24px 22px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}
.dgp-hero-ttl{font-size:19px;font-weight:700;color:#1b3248;line-height:1.4;margin:2px 0}
.dgp-hero-exc{font-size:13px;color:#5a6a80;line-height:1.65;margin:0;flex-grow:1}
.dgp-g2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.dgp-g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-bottom:16px}
.dgp-gr{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}
.dgp-card{background:#fff;border-radius:14px;overflow:hidden;border:1px solid #e4e8f0;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:box-shadow .18s ease}
.dgp-card:hover{box-shadow:0 6px 22px rgba(27,50,72,.11)}
.dgp-ci{overflow:hidden;background:#e8ecf1;height:155px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dgp-ct{width:100%;height:155px;object-fit:cover;display:block}
.dgp-cb{padding:15px;flex-grow:1;display:flex;flex-direction:column}
.dgp-card-ttl{font-size:14px;font-weight:700;color:#1b3248;line-height:1.45;margin:7px 0 6px}
.dgp-card-exc{font-size:12px;color:#5a6a80;line-height:1.6;margin:0 0 10px;flex-grow:1}
.dgp-smc{background:#fff;border-radius:14px;overflow:hidden;border:1px solid #e4e8f0;text-decoration:none;color:inherit;display:grid;grid-template-columns:76px 1fr;transition:box-shadow .18s ease}
.dgp-smc:hover{box-shadow:0 4px 16px rgba(27,50,72,.1)}
.dgp-si{overflow:hidden;background:#1b3248;display:flex;align-items:center;justify-content:center;min-height:90px}
.dgp-st{width:76px;height:100%;object-fit:cover;display:block;min-height:90px}
.dgp-sb{padding:10px 13px;display:flex;flex-direction:column;justify-content:center;gap:5px}
.dgp-sm-ttl{font-size:12px;font-weight:700;color:#1b3248;line-height:1.45;margin:0}
.dgp-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dgp-meta-sm{gap:5px}
.dgp-rt{font-size:11px;color:#8898aa;display:inline-flex;align-items:center;gap:3px}
.dgp-rt i{font-size:12px}
.dgp-badge{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:20px;display:inline-block;line-height:1.5}
.dgp-b-feat{background:#e31e24;color:#fff}
.dgp-b-blue{background:#e3eaf2;color:#1b3248}
.dgp-b-teal{background:#e0f4f1;color:#0e6b5e}
.dgp-b-green{background:#e4f4e8;color:#1a6b30}
.dgp-b-amber{background:#fef3dc;color:#7a5000}
.dgp-b-red{background:#fde8e8;color:#9c1515}
.dgp-btn{display:inline-flex;align-items:center;gap:6px;background:#e31e24;color:#fff!important;font-size:12px;font-weight:600;padding:8px 15px;border-radius:8px;align-self:flex-start;text-decoration:none}
.dgp-btn i{font-size:14px}
.dgp-lnk{font-size:11px;color:#e31e24!important;font-weight:600;display:inline-flex;align-items:center;gap:3px;margin-top:auto;text-decoration:none}
.dgp-lnk i{font-size:13px}
@media(max-width:767px){.dgp-hero{grid-template-columns:1fr}.dgp-hero-img{min-height:180px}.dgp-g2,.dgp-gr{grid-template-columns:1fr}.dgp-g3{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.dgp-g3{grid-template-columns:1fr}}
/* Blog archive title banner – rimosso, sostituito da .dgp-lbl in #dg-blog */
.blog #primary::before{display:none!important}


/* ═══════════════════════════════════════════════════════
   SINGLE POST – stile coerente con il blog
═══════════════════════════════════════════════════════ */

/* Wrapper: stessa larghezza massima dell'archivio */
/* Astra container — allargato per articoli */
.single .ast-container{max-width:1200px!important}

.single #primary{max-width:1100px;margin:0 auto;padding:32px 40px 80px;box-sizing:border-box}
.single article{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 6px rgba(27,50,72,.09)}

/* Riga sopra l'articolo: back + badge + data */
.dgp-single-top{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap}
.dgp-back{font-family:'Barlow',sans-serif;font-size:13px;font-weight:700;color:#1b3248;text-decoration:none;display:inline-flex;align-items:center;gap:0;opacity:.65;transition:opacity .18s;letter-spacing:.02em;text-transform:uppercase}
.dgp-back::before{content:'← ';font-style:normal}
.dgp-back .ti{display:none}
.dgp-back:hover{opacity:1}
.dgp-back .ti{font-size:14px}
.dgp-single-badges{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}
.dgp-single-date{font-size:12px;font-weight:500;color:#1b3248;opacity:.5;font-family:'Barlow',sans-serif}

/* Hero immagine in evidenza */
.dgp-single-hero{width:100%;border-radius:14px 14px 0 0;overflow:hidden;aspect-ratio:21/9;background:#eef1f5;min-height:280px}
.dgp-single-hero-img{width:100%;height:100%;object-fit:cover;display:block}

/* Entry header: titolo + meta Astra */
.single .entry-header{padding:44px 60px 26px;border-bottom:1px solid #eef1f5}
.single .entry-title{font-family:'Barlow',sans-serif;font-size:clamp(26px,3vw,46px);font-weight:800;color:#1b3248;line-height:1.15;margin:0;letter-spacing:-.025em}
/* Nascondi email autore, nascondi separatore, mostra solo data */
.single .posted-by,.single .entry-meta .ast-sep{display:none!important}
.single .entry-meta{font-size:0!important;color:#8899aa;margin-top:10px;padding:0}
.single .posted-on,.single .posted-on *{font-family:'Barlow',sans-serif;font-weight:600;color:#1b3248;opacity:.45;font-size:12px!important}

/* Contenuto articolo */
.single .entry-content{padding:40px 60px 56px;font-size:17px;line-height:1.85;color:#2d3748}
.single .entry-content>*:first-child{margin-top:0}
.single .entry-content h2{font-family:'Barlow',sans-serif;font-size:clamp(18px,2vw,24px);font-weight:700;color:#1b3248;margin:40px 0 12px;line-height:1.25;padding-bottom:8px;border-bottom:2px solid #eef1f5}
.single .entry-content h3{font-family:'Barlow',sans-serif;font-size:clamp(16px,1.6vw,20px);font-weight:700;color:#1b3248;margin:32px 0 10px;line-height:1.3}
.single .entry-content h4{font-family:'Barlow',sans-serif;font-weight:700;color:#1b3248;margin:24px 0 8px}
.single .entry-content p{margin-bottom:20px}
.single .entry-content ul,.single .entry-content ol{margin:0 0 20px 24px}
.single .entry-content li{margin-bottom:7px}
.single .entry-content strong{color:#1b3248;font-weight:700}
.single .entry-content a{color:#0082ef;text-decoration:underline;text-underline-offset:2px}
.single .entry-content a:hover{color:#1b3248}
.single .entry-content hr{border:none;border-top:1px solid #eef1f5;margin:36px 0}
.single .entry-content blockquote{border-left:4px solid #1b3248;margin:24px 0;padding:12px 20px;background:#f7f9fc;border-radius:0 8px 8px 0;font-style:italic;color:#1b3248;opacity:.8}
.single .entry-content img{border-radius:10px;max-width:100%;height:auto}

/* Navigazione articoli precedente/successivo */
.single .post-navigation{max-width:1100px;margin:20px auto 0;padding:0 40px 64px}
.single .post-navigation .nav-links{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.single .post-navigation a{display:block;background:#fff;border-radius:12px;padding:16px 20px;text-decoration:none;font-family:'Barlow',sans-serif;font-weight:700;color:#1b3248;font-size:13px;line-height:1.4;box-shadow:0 1px 5px rgba(27,50,72,.08);transition:box-shadow .18s,transform .18s}
.single .post-navigation a:hover{box-shadow:0 4px 18px rgba(27,50,72,.14);transform:translateY(-1px)}
.single .nav-previous a::before{content:'← ';opacity:.55}
.single .nav-next{text-align:right}
.single .nav-next a::after{content:' →';opacity:.55}
.single .nav-label{display:block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8899aa;margin-bottom:4px}

/* Responsive */
@media(max-width:767px){
  .single #primary{padding:16px 16px 48px}
  .single .entry-header{padding:28px 24px 18px}
  .single .entry-content{padding:28px 24px 36px}
  .single .post-navigation{padding:0 16px 48px}
  .single .post-navigation .nav-links{grid-template-columns:1fr}
  .single .nav-next{text-align:left}
}

/* ============================================
   SINGLE ARTICLE — ENHANCED LAYOUT v1.3.0
   ============================================ */

/* Category badge pill */
.dgp-single-badge{display:inline-flex;align-items:center;background:#e8f0fb;color:#1b3248;font-family:'Barlow',sans-serif;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;border-radius:20px;text-decoration:none;transition:background .15s}
.dgp-single-badge:hover{background:#d0e2f7;color:#1b3248}

/* Reading time */
.dgp-read-time{font-family:'Barlow',sans-serif;font-size:11px;font-weight:600;color:#8899aa;display:inline-flex;align-items:center;gap:4px}

/* Author meta row */
.dgp-article-meta{display:flex;align-items:center;gap:12px;padding:20px 60px 16px;border-bottom:1px solid #eef1f5;flex-wrap:wrap}
.dgp-author-avatar{width:38px;height:38px;border-radius:50%;background:#1b3248;display:flex;align-items:center;justify-content:center;color:#fff;font-family:'Barlow',sans-serif;font-size:14px;font-weight:800;flex-shrink:0}
.dgp-meta-info{display:flex;flex-direction:column;gap:2px}
.dgp-meta-author{font-family:'Barlow',sans-serif;font-size:13px;font-weight:700;color:#1b3248}
.dgp-meta-date-read{font-family:'Barlow',sans-serif;font-size:11px;color:#8899aa;display:flex;align-items:center;gap:8px}
.dgp-meta-sep{opacity:.35}

/* Tables */
.single .entry-content table{width:100%;border-collapse:collapse;margin:24px 0 28px;font-size:15px}
.single .entry-content th{background:#1b3248;color:#fff;font-family:'Barlow',sans-serif;font-weight:700;padding:10px 14px;text-align:left;font-size:13px;letter-spacing:.03em}
.single .entry-content td{padding:9px 14px;border-bottom:1px solid #eef1f5;color:#2d3748}
.single .entry-content tr:nth-child(even) td{background:#f7f9fc}

/* Code */
.single .entry-content pre{background:#1b3248;color:#e8f4f8;border-radius:10px;padding:20px 24px;overflow-x:auto;font-size:14px;line-height:1.7;margin:24px 0}
.single .entry-content code{background:#eef1f5;color:#1b3248;padding:2px 6px;border-radius:4px;font-size:14px}
.single .entry-content pre code{background:transparent;color:inherit;padding:0;font-size:inherit}

/* Figures & captions */
.single .entry-content figure{margin:28px 0}
.single .entry-content figcaption{font-family:'Barlow',sans-serif;font-size:12px;color:#8899aa;text-align:center;margin-top:8px;font-style:italic}

/* Callout box */
.dgp-callout{background:#e8f4fb;border-left:4px solid #1b3248;border-radius:0 10px 10px 0;padding:16px 20px;margin:28px 0;font-size:15px;color:#1b3248}
.dgp-callout-title{font-family:'Barlow',sans-serif;font-weight:800;font-size:12px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:6px;opacity:.65}

/* Tags section */
.dgp-tags-section{padding:22px 60px 26px;border-top:1px solid #eef1f5;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dgp-tags-label{font-family:'Barlow',sans-serif;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#1b3248;opacity:.4}
.dgp-tag{display:inline-block;background:#f0f4f8;color:#1b3248;border-radius:20px;padding:4px 12px;font-family:'Barlow',sans-serif;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s}
.dgp-tag:hover{background:#dde6f0;color:#1b3248}

/* Related articles */
.dgp-related{padding:32px 60px 44px;border-top:2px solid #eef1f5;background:#f7f9fc}
.dgp-related-ttl{font-family:'Barlow',sans-serif;font-size:19px;font-weight:800;color:#1b3248;margin:0 0 18px;letter-spacing:-.015em}

/* Comments */
.single #comments{max-width:1100px;margin:0 auto;padding:0 40px 60px;box-sizing:border-box}
.single .comments-title{font-family:'Barlow',sans-serif;font-size:20px;font-weight:800;color:#1b3248;margin-bottom:20px}
.single .comment-respond .comment-reply-title{font-family:'Barlow',sans-serif;font-size:18px;font-weight:800;color:#1b3248}
.single .comment-form input:not([type=submit]),.single .comment-form textarea{border:1px solid #e4e8f0;border-radius:8px;padding:10px 14px;font-size:15px;width:100%;box-sizing:border-box;font-family:inherit;transition:border-color .2s}
.single .comment-form input:focus,.single .comment-form textarea:focus{outline:none;border-color:#1b3248}
.single .comment-form .submit{background:#1b3248;color:#fff;border:none;border-radius:8px;padding:11px 28px;font-family:'Barlow',sans-serif;font-weight:700;font-size:14px;cursor:pointer;letter-spacing:.03em;transition:background .18s}
.single .comment-form .submit:hover{background:#0f2030}
.single .comment-body{background:#fff;border:1px solid #eef1f5;border-radius:10px;padding:16px 20px;margin-bottom:12px}
.single .comment-author .fn{font-family:'Barlow',sans-serif;font-weight:700;color:#1b3248}
.single .comment-metadata{font-size:11px;color:#8899aa}

/* Responsive additions */
@media(max-width:767px){
  .dgp-tags-section{padding:18px 18px 22px}
  .dgp-related{padding:24px 18px 36px}
  .single #comments{padding:0 16px 40px}
}

/* ============================================
/* ============================================
   CTA BOX v2 — Navy + Rosso (ispirato Canva prop.4)
   ============================================ */
.dgp-cta-box{background:#1b3248;border-radius:14px;padding:32px 40px;margin:36px 0 20px;display:flex;align-items:center;gap:28px;position:relative;overflow:hidden;border-left:6px solid #d10024}
.dgp-cta-box::after{content:'';position:absolute;right:-40px;top:-40px;width:160px;height:160px;border-radius:50%;background:rgba(209,0,36,.08)}
.dgp-cta-icon{width:58px;height:58px;border-radius:50%;background:#d10024;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1;box-shadow:0 4px 18px rgba(209,0,36,.45)}
.dgp-cta-content{flex:1;position:relative;z-index:1}
.dgp-cta-title{font-family:'Barlow',sans-serif;font-size:clamp(17px,1.6vw,21px);font-weight:800;color:#fff;margin:0 0 6px;line-height:1.25;letter-spacing:-.02em}
.dgp-cta-sub{font-family:'Barlow',sans-serif;font-size:14px;font-weight:500;color:rgba(255,255,255,.6);margin:0 0 18px;line-height:1.55}
.dgp-cta-btns{display:flex;gap:10px;flex-wrap:wrap}
.dgp-cta-btn{font-family:'Barlow',sans-serif;font-size:15px;font-weight:800;padding:12px 24px;border-radius:9px;text-decoration:none;letter-spacing:.02em;transition:opacity .15s,transform .15s;display:inline-flex;align-items:center;gap:8px;color:#fff;white-space:nowrap}.dgp-cta-btn:hover{opacity:.88;transform:translateY(-1px)}
.dgp-cta-btn:hover{opacity:.85;text-decoration:none}
.dgp-cta-btn-shop{background:#d10024;color:#fff!important}
.dgp-cta-btn-shop:hover{color:#fff}
.dgp-cta-btn-wa{background:#25d366;color:#fff!important}
.dgp-cta-btn-wa:hover{color:#fff}
@media(max-width:767px){
  .dgp-cta-box{flex-direction:column;align-items:flex-start;padding:24px 22px;gap:16px}
  .dgp-cta-icon{width:48px;height:48px;font-size:20px}
}

/* ============================================================
   PRODOTTI CONSIGLIATI — integrated article product section
   ============================================================ */
.dgp-rp-wrap{margin:0 0 24px;background:#fff;border-radius:16px;padding:28px 32px 32px;border-top:4px solid #1b3248;box-shadow:0 2px 12px rgba(27,50,72,.07)}
.dgp-rp-heading{font-family:'Barlow',sans-serif;font-size:20px;font-weight:800;color:#1b3248;margin:0 0 20px;letter-spacing:-.02em;display:flex;align-items:center;gap:10px}
.dgp-rp-heading::before{content:'';display:inline-block;width:4px;height:22px;background:#1b3248;border-radius:2px;flex-shrink:0}
.dgp-rp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:16px}
.dgp-rp-card{background:#f8f9fb;border-radius:12px;overflow:hidden;border:1px solid #e4e8ed;display:flex;flex-direction:column;transition:box-shadow .22s,transform .22s,border-color .22s}
.dgp-rp-card:hover{box-shadow:0 8px 28px rgba(27,50,72,.13);transform:translateY(-3px);border-color:#1b3248}
.dgp-rp-img-wrap{display:block;aspect-ratio:1/1;overflow:hidden;background:#fff;flex-shrink:0;border-bottom:1px solid #e4e8ed}
.dgp-rp-img{width:100%;height:100%;object-fit:contain;padding:14px;transition:transform .28s}
.dgp-rp-card:hover .dgp-rp-img{transform:scale(1.06)}
.dgp-rp-body{padding:12px 14px 16px;display:flex;flex-direction:column;flex:1}
.dgp-rp-name{font-family:'Barlow',sans-serif;font-size:13px;font-weight:700;color:#1b3248;text-decoration:none;line-height:1.4;display:block;margin-bottom:8px;flex:1}
.dgp-rp-name:hover{color:#2a5298}
.dgp-rp-price{font-family:'Barlow',sans-serif;font-size:17px;font-weight:800;color:#1b3248;margin-bottom:12px;line-height:1}
.dgp-rp-price ins{text-decoration:none}
.dgp-rp-cart-btn{font-family:'Barlow',sans-serif;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#1b3248;color:#fff!important;padding:10px 14px;border-radius:8px;text-decoration:none;display:block;text-align:center;transition:background .15s,transform .15s}
.dgp-rp-cart-btn:hover{background:#0f1f30;transform:translateY(-1px)}
.dgp-rp-cart-btn--outline{background:transparent;color:#1b3248!important;border:2px solid #1b3248}
.dgp-rp-cart-btn--outline:hover{background:#1b3248;color:#fff!important}
@media(max-width:767px){.dgp-rp-wrap{padding:20px 18px 24px;border-radius:12px}.dgp-rp-grid{grid-template-columns:repeat(2,1fr);gap:10px}.dgp-rp-heading{font-size:17px}}