/* Castaldi · impaginazione delle sezioni costruite in Elementor (testata, piede, home, pagine).
   I contenitori Elementor usano le variabili --padding-* e --display: le classi le impostano, i controlli di
   Elementor restano liberi per ritocchi puntuali. */

body *, body *::before, body *::after { box-sizing: border-box; }
body p { margin: 0; }
body .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
body .e-con.margini { --padding-left: var(--margine); --padding-right: var(--margine); }
body .e-con > .elementor-widget { max-width: 100%; }

/* pulsanti di Elementor: pillole del prototipo (classi b-*) */
body .elementor-widget-button .elementor-button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; border: 0; background: var(--blu); color: var(--bianco); fill: var(--bianco); font-family: var(--f-testo); font-size: 17px; font-weight: 700; line-height: 1.2; text-align: center; transition: transform .2s, background-color .2s, color .2s; }
body .elementor-widget-button .elementor-button:hover, body .elementor-widget-button .elementor-button:focus { transform: translateY(-2px); background: var(--blu); color: var(--bianco); }
body .b-bianco .elementor-button, body .b-bianco .elementor-button:hover { background: var(--bianco); color: var(--blu); }
body .b-bianco-ink .elementor-button, body .b-bianco-ink .elementor-button:hover { background: var(--bianco); color: var(--ink); }
body .b-bordo-bianco .elementor-button, body .b-bordo-bianco .elementor-button:hover { background: transparent; border: 2px solid var(--bianco); color: var(--bianco); }
body .b-ink .elementor-button { background: var(--ink); color: var(--bianco); }
body .b-ink .elementor-button:hover { background: var(--blu); color: var(--bianco); }
body .b-bordo .elementor-button, body .b-bordo .elementor-button:hover { background: transparent; border: 1.5px solid var(--ink); color: var(--ink); }
body .b-grande .elementor-button { min-height: 56px; padding: 0 28px; font-size: 17px; }
body .b-medio .elementor-button { min-height: 48px; padding: 0 22px; font-size: 17px; }
body .b-mini .elementor-button { min-height: 40px; padding: 0 18px; font-size: 15px; }
body .b-pieno, body .b-pieno .elementor-button { width: 100%; }

/* ---------- testata ---------- */
body .annuncio.e-con { background: var(--ink); color: var(--linea); font-size: 13px; line-height: 1.6; --padding-top: 9px; --padding-bottom: 9px; }
body .annuncio a { color: var(--bianco); font-weight: 600; }
body .annuncio a:hover { color: var(--bianco); text-decoration: underline; }
body .testata.e-con { --padding-top: 18px; --padding-bottom: 12px; background: var(--bianco); }
body .testata-riga > .logo.elementor-widget, body .piede-logo.elementor-widget { flex: 0 0 auto; width: auto; }
/* Elementor dà 48 px di larghezza agli SVG linkati (a img[src$=".svg"]): serve una regola più forte */
body .logo.elementor-widget-image img[src], body .piede-logo.elementor-widget-image img[src], body .logo.elementor-widget-image a img[src], body .piede-logo.elementor-widget-image a img[src] { height: 42px; width: auto; max-width: none; display: block; }
body .testata-riga > .cerca-box.elementor-widget { flex: 1 1 380px; min-width: 0; }
body .cerca { display: flex; align-items: center; gap: 10px; background: var(--grigio); border-radius: 999px; padding: 0 8px 0 20px; margin: 0; }
body .cerca svg { flex: 0 0 auto; color: var(--ink); }
body .cerca input[type="search"] { flex: 1; min-width: 0; min-height: 52px; border: 0; border-radius: 0; background: transparent; box-shadow: none; padding: 0; font: inherit; color: var(--ink); outline-offset: 6px; }
body .cerca input[type="search"]::placeholder { color: var(--testo); opacity: 1; }
body .cerca input[type="search"]::-webkit-search-cancel-button { display: none; }
body .testata-riga > .azioni.e-con { flex: 0 0 auto; width: auto; }
/* testata ridotta della cassa */
body .testata-cassa.e-con { --padding-top: 18px; --padding-bottom: 18px; border-bottom: 1px solid var(--bordo); }
body .testata-cassa .testata-riga > .elementor-widget { flex: 0 1 auto; width: auto; }
body .cassa-sicuro { display: flex; align-items: center; gap: 10px; margin: 0; font-weight: 600; color: var(--ink); }
body .cassa-sicuro svg { flex: 0 0 auto; }
body a.cassa-torna { font-weight: 700; }
body .link-account { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; font-weight: 600; color: var(--ink); }
body .nav-chip .elementor-nav-menu--main .elementor-nav-menu { display: flex; flex-wrap: wrap; gap: 8px; }
body .nav-chip .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--linea); font-family: var(--f-testo); font-size: 15px; font-weight: 600; line-height: 1.2; color: var(--ink); background: transparent; }
body .nav-chip .elementor-nav-menu--main .elementor-nav-menu > li > a.elementor-item:hover { color: var(--blu); border-color: var(--blu); }
body .nav-chip .elementor-nav-menu--main .elementor-nav-menu > li.current-menu-item:not(.menu-item-type-custom) > a.elementor-item, body.home .nav-chip .elementor-nav-menu--main .elementor-nav-menu > li:first-child > a.elementor-item { background: var(--ink); border-color: var(--ink); color: var(--bianco); }

/* icona del carrello e carrello a scomparsa (Carrello Menu di Elementor Pro) */
body .carrello-icona .elementor-menu-cart__toggle .elementor-button { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border-radius: 50%; border: 0; background: var(--grigio); color: var(--ink); }
body .carrello-icona .elementor-menu-cart__toggle .elementor-button:hover { color: var(--blu); }
body .carrello-icona .elementor-menu-cart__toggle .elementor-button-text { display: none; }
body .carrello-icona .elementor-menu-cart__toggle .elementor-button-icon { font-size: 20px; color: inherit; }
body .carrello-icona .elementor-menu-cart__toggle .elementor-button-icon svg { width: 20px; height: 20px; fill: currentColor; }
body .carrello-icona .elementor-menu-cart__toggle .elementor-button-icon[data-counter]::before, body .carrello-icona .elementor-menu-cart__toggle .elementor-button-icon-qty[data-counter] { position: absolute; top: -4px; right: -4px; inset-inline-end: -4px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--blu); color: var(--bianco); font-size: 12px; font-weight: 700; line-height: 20px; }
body .carrello-icona .elementor-menu-cart__container { background: rgba(34,34,34,.45); }
body .carrello-icona .elementor-menu-cart__main { width: min(440px, 100%); padding: 20px 24px calc(24px + env(safe-area-inset-bottom, 0px)); background: var(--bianco); box-shadow: -20px 0 50px rgba(34,34,34,.18); font-family: var(--f-testo); }
body .carrello-icona .elementor-menu-cart__main::before { content: "Il tuo carrello"; display: block; padding-bottom: 16px; margin-bottom: 8px; border-bottom: 1px solid var(--bordo); font-family: var(--f-titoli); font-weight: 700; font-size: 26px; letter-spacing: -0.02em; color: var(--ink); }
body .carrello-icona .elementor-menu-cart__close-button { width: 44px; height: 44px; border-radius: 50%; background: var(--grigio); margin: 0 0 0 auto; }
body .carrello-icona .elementor-menu-cart__product { border-color: var(--bordo); padding-block: 14px; }
body .carrello-icona .elementor-menu-cart__product-image img { border-radius: 16px; background: var(--grigio); object-fit: contain; }
body .carrello-icona .elementor-menu-cart__product-name a { font-family: var(--f-titoli); font-weight: 700; color: var(--ink); line-height: 1.2; }
body .carrello-icona .elementor-menu-cart__product-price { color: var(--testo); font-variant-numeric: tabular-nums; }
body .carrello-icona .elementor-menu-cart__subtotal { border: 0; padding-top: 18px; font-family: var(--f-titoli); font-size: 22px; color: var(--ink); }
body .carrello-icona .elementor-menu-cart__footer-buttons { gap: 10px; }
body .carrello-icona .elementor-menu-cart__footer-buttons .elementor-button { min-height: 52px; border-radius: 999px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
body .carrello-icona .elementor-menu-cart__footer-buttons .elementor-button--checkout { background: var(--blu); color: var(--bianco); }
body .carrello-icona .elementor-menu-cart__footer-buttons .elementor-button--view-cart { background: transparent; color: var(--ink); border: 1.5px solid var(--ink); }
body .carrello-icona .woocommerce-mini-cart__empty-message { padding: 40px 0; text-align: center; color: var(--testo); }

/* ---------- piede ---------- */
body .piede.e-con { background: var(--ink); color: var(--linea); font-size: 15px; line-height: 1.6; }
body .piede a { color: var(--linea); }
body .piede a:hover { color: var(--bianco); }
body .piede-colonne.e-con { --display: grid; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px; --padding-top: 56px; --padding-bottom: 40px; }
body .piede address { margin-top: 16px; font-style: normal; line-height: 1.8; }
body .piede address a { color: var(--bianco); }
body .piede-titolo .elementor-heading-title { font-family: var(--f-testo); font-size: 15px; font-weight: 700; letter-spacing: 0; color: var(--bianco); }
body .piede-menu .elementor-nav-menu--main .elementor-nav-menu { display: flex; flex-direction: column; gap: 8px; }
body .piede-menu .elementor-nav-menu--main .elementor-item { padding: 0; font-family: var(--f-testo); font-size: 15px; font-weight: 400; line-height: 1.6; color: var(--linea); }
body .piede-menu .elementor-nav-menu--main .elementor-item:hover { color: var(--bianco); }
body .piede-fondo.e-con { --padding-top: 20px; --padding-bottom: 20px; border-top: 1px solid #444444; font-size: 13px; color: #999999; }
body .piede-link .elementor-nav-menu--main .elementor-nav-menu { display: flex; flex-wrap: wrap; gap: 18px; }
body .piede-link .elementor-nav-menu--main .elementor-item { padding: 0; font-family: var(--f-testo); font-size: 13px; font-weight: 400; color: var(--linea); }
body .credito { color: var(--linea); }
body .credito a { color: var(--bianco); font-weight: 800; letter-spacing: 0.06em; }
body .credito a:hover { color: var(--bianco); text-decoration: underline; }
body .piede-rna { padding-bottom: 36px; font-size: 12px; color: #999999; max-width: 900px; }
body .piede-rna a { color: var(--linea); text-decoration: underline; }
body .piede-recesso a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid #666666; color: var(--bianco); font-weight: 700; font-size: 14px; }
body .piede-recesso a:hover { border-color: var(--bianco); color: var(--bianco); }

