/*!
Theme Name:   Gwyneth Child Theme
Template:     gwyneth
Version:      1.0.0

Theme URI:    https://github.com/webmandesign/child-theme/
Author:       WebMan Design
Author URI:   https://www.webmandesign.eu/
License:      GPL-3.0-or-later
License URI:  https://www.gnu.org/licenses/gpl-3.0-standalone.html

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.

IMPORTANT:
Read the instructions in https://github.com/webmandesign/child-theme/blob/master/readme.md

Child theme CSS styles:
*/

/* ============================================================
   TUTTO QUESTO BLOCCO È ATTIVO SOLO SULLA HOMEPAGE (.home)
   Per attivare qualcosa su altre pagine, sposta le regole
   fuori da questo scope e usa selettori specifici.
   ============================================================ */

/* Variabili breakpoint + font-size h2/h3 + font-size globale */
body.home {
      --wp-breakpoint-small: 576px;
      --wp-breakpoint-medium: 768px;
      --wp-breakpoint-large: 1024px;
      --wp-breakpoint-xlarge: 1440px;

      --theme--css--font-size-h2: calc(
            var(--theme--css--desktop-multiply-em) *
                  var(--theme--css--modular-scale--pow_3) * 1.2
      );

      --theme--css--font-size-h3: calc(
            var(--theme--css--desktop-multiply-em) *
                  var(--theme--css--modular-scale--pow_2) * 1.1
      );

      font-size: calc(var(--theme--css--font-size-base) * 1.1);
}

/* Testo body (p) */
body.home p {
      font-size: calc(var(--theme--css--font-size-base) * 1.5);
}

.blocco-homepage {
      padding-top: 6rem !important;
      padding-bottom: 4rem !important;
}

@media (min-width: 768px) {
      .blocco-homepage {
            padding-top: 0rem !important;
      }
}

.blocco-homepage2 {
      padding-top: 0rem !important;
      padding-bottom: 0rem !important;
}

@media (min-width: 768px) {
      .blocco-homepage2 {
            padding-top: 0rem !important;
            padding-bottom: 6rem !important;
            padding-left: 4rem !important;
      }
}

.wp-block-navigation__container {
      column-gap: 2rem !important;
}

/* Firma: allineamento a destra */
.wp-block-image.firma {
      float: right !important;
      margin-left: 1.5em !important;
      margin-right: unset !important;
      margin-top: 0 !important;
}

.padding-ridotto {
      padding: calc(
            var(--theme--css--has-background--padding-top) / 2
      ) !important;
}

/* Icona account WooCommerce nell'header — uniforme su tutte le pagine */
.is-style-site-header .wp-block-woocommerce-customer-account {
      font-size: 1rem !important;
}

/* Font nav desktop nell'header — uniforme su tutte le pagine.
   Senza questa regola le voci ereditano dal body: su homepage (font-size *1.1)
   risultano più grandi che sulle altre pagine (font-size base). */
.is-style-site-header .desktop-only-nav .wp-block-navigation-item__content {
      font-size: calc(var(--theme--css--font-size-base) * 1) !important;
}

/* Cover: testo copertina grande */
body.home #testo-copertina {
      font-size: calc(var(--theme--css--font-size-h1) * 1.6) !important;
}

/* Cover: ombra testo */
body.home .testo-copertina-shadow {
      text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3) !important;
}

/* Ombra automatica sugli h1 di pagine e post singoli */
body.page h1,
body.single h1 {
      text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3) !important;
}

/* Cover: allineamento contenuto interno (mobile: in alto a sinistra) */
body.home .wp-block-cover__inner-container {
      align-self: flex-start !important;
      justify-content: flex-start !important;
}

@media (min-width: 768px) {
      body.home .wp-block-cover__inner-container {
            align-self: center !important;
            justify-self: center !important;
      }
}

/* Triplica lo spacing content sulle pagine non-home con header overlaid
   solo su schermi larghi (≥ 1280px, breakpoint xl del tema).
   Valore originale: clamp(60px, …, 120px) → triplicato: clamp(180px, …, 360px). */
@media (min-width: 1280px) {
      body:not(.home).has-site-header-overlaid,
      body:not(.home).has-site-header-overlaid-sticky {
            --wp--preset--spacing--content: clamp(180px, 12vw, 360px);
      }
}

/* Fix: overflow hidden sui cover block con border-radius */
body.home .wp-block-cover[style*="border-radius"],
body.home .wp-block-cover[style*="border-top-left-radius"],
body.home .wp-block-cover[style*="border-bottom-right-radius"] {
      overflow: hidden;
}

/* Fix: cover con contenuto in basso (is-position-bottom-center)
   Il container si allunga a tutta l'altezza del cover e spinge il contenuto in fondo;
   il group figlio cresce per coprire tutta l'altezza (così il gradient occupa tutto il cover)
   e allinea p e icona al bordo inferiore. */
.wp-block-cover.has-custom-content-position.is-position-bottom-center
      .wp-block-cover__inner-container {
      align-self: stretch !important;
      display: flex !important;
      flex-direction: column !important;
      justify-content: flex-end !important;
}

.wp-block-cover.has-custom-content-position.is-position-bottom-center
      .wp-block-cover__inner-container
      > .wp-block-group {
      flex: 1;
      align-items: flex-end;
}

/* Navigazione duplicata: desktop-only-nav visibile solo da 1280px,
   mobile-only-nav (hamburger) visibile sotto 1280px */
@media (max-width: 1279px) {
      .desktop-only-nav {
            display: none !important;
      }
}
@media (min-width: 1280px) {
      .mobile-only-nav {
            display: none !important;
      }
}

/* Nasconde i social link nell'header sotto 600px,
   ma non quelli iniettati nel menu mobile */
@media (max-width: 599px) {
      .is-style-site-header .wp-block-social-links {
            display: none !important;
      }
      .mobile-menu-extras .wp-block-social-links {
            display: flex !important;
      }
}

/* Nasconde l'icona account WooCommerce nell'header sotto 400px,
   ma non quella iniettata nel menu mobile */
@media (max-width: 399px) {
      .is-style-site-header .wp-block-woocommerce-customer-account {
            display: none !important;
      }
      .mobile-menu-extras .wp-block-woocommerce-customer-account {
            display: block !important;
      }
}

/* Pulsante di chiusura menu mobile: spostato in alto a destra */
.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-open {
      border: none !important;
      box-shadow: none !important;
}

/* Bottone hamburger: sfondo uguale a quello sotto 880px anche tra 880-1279px */
@media (min-width: 880px) and (max-width: 1279px) {
      .mobile-only-nav.is-style-fixed-mobile-toggle:not(
                  .block-editor-block-list__block
            )
            .wp-block-navigation__responsive-container-open {
            background: var(--theme--css--button--color--background) !important;
            color: var(--theme--css--button--color--text) !important;
            padding: 1em !important;
            font-size: 1rem !important;
      }
}

.is-style-site-header button {
      box-shadow: none !important;
}

.wp-block-navigation__responsive-container-close {
      position: absolute !important;
      top: 1rem !important;
      right: 1rem !important;
      left: auto !important;
}

/* Icone social link nel menu mobile: bianco pieno */
.mobile-menu-extras .wp-block-social-links .wp-social-link svg {
      fill: #ffffff !important;
}
.mobile-menu-extras .wp-block-social-links .wp-social-link {
      background-color: transparent !important;
      color: #ffffff !important;
}

/* Icona account nel menu mobile: bianca */
.mobile-menu-extras .wc-block-customer-account__account-icon,
.mobile-menu-extras .wp-block-woocommerce-customer-account {
      color: #ffffff !important;
      fill: #ffffff !important;
}
.mobile-menu-extras .wp-block-woocommerce-customer-account svg {
      stroke: #ffffff !important;
      fill: none !important;
}

/* Stile degli elementi iniettati nel menu mobile */
.mobile-menu-extras {
      display: flex;
      align-items: center;
      gap: 1rem;
      padding: 1rem 1.5rem;
      border-top: 1px solid rgba(255, 255, 255, 0.2);
      margin-top: auto;
}

/* Forza mobile-only-nav a mostrare SEMPRE l'hamburger sotto 1280px */
@media (max-width: 1279px) {
      .mobile-only-nav .wp-block-navigation__responsive-container-open {
            display: flex !important;
      }
      .mobile-only-nav
            .wp-block-navigation__responsive-container:not(.is-menu-open) {
            display: none !important;
      }
}

/* Fix: pulsante menu hamburger nella barra in alto (invece che in fondo allo schermo) */
@media (max-width: 1279px) {
      .wp-block-navigation.is-style-fixed-mobile-toggle:not(
                  .block-editor-block-list__block
            )
            .wp-block-navigation__responsive-container-close,
      .wp-block-navigation.is-style-fixed-mobile-toggle:not(
                  .block-editor-block-list__block
            )
            .wp-block-navigation__responsive-container-open {
            position: static;
            left: auto;
            right: auto;
            top: auto;
            bottom: auto;
            transform: none;
      }
}

/* Fix: header posizionamento e trasparenza anche su schermi piccoli (< 1280px) */
@media (max-width: 1279px) {
      /* Posizionamento overlaid */
      .has-site-header-overlaid:not([style*="hidden"])
            .is-style-site-header:not(.ignore-theme-options),
      .has-site-header-overlaid-sticky:not([style*="hidden"])
            .is-style-site-header:not(.ignore-theme-options),
      .page-template-custom-overlaid-header:not([style*="hidden"])
            .is-style-site-header:not(.ignore-theme-options) {
            inset-block-start: var(--wp-admin--admin-bar--height, 0);
      }

      .has-site-header-sticky .is-style-site-header:not(.ignore-theme-options) {
            position: sticky;
      }

      .has-site-header-overlaid
            .is-style-site-header:not(.ignore-theme-options),
      .page-template-custom-overlaid-header
            .is-style-site-header:not(.ignore-theme-options) {
            position: absolute;
      }

      .has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options),
      .page-template-custom-overlaid-header.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options),
      .page-template-custom-overlaid-header.has-site-header-sticky
            .is-style-site-header:not(.ignore-theme-options) {
            position: fixed;
      }

      /* Trasparenza sfondo: nessuno sfondo quando non si è scrollato */
      .has-site-header-transparent.has-site-header-sticky:not(.has-scrolled)
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors),
      .has-site-header-transparent.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors),
      .has-site-header-transparent-modified.has-site-header-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors),
      .has-site-header-transparent-modified.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-default
            .is-style-site-header
            > .has-background:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-overlaid
            .is-style-site-header
            > .has-background:not(.keep-colors) {
            background: none !important;
            transition:
                  background 0.3s,
                  color 0.3s,
                  border 0.3s;
      }

      /* Logo: sfondo bianco su sticky transparent-modified (non scrollato) */
      .has-site-header-transparent-modified.has-site-header-sticky:not(
                  .page-template-custom-overlaid-header
            ):not(.has-scrolled)
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo.has-background:not(.keep-colors) {
            background: var(--wp--preset--color--base) !important;
            border-color: transparent !important;
      }

      /* Logo: nessuno sfondo su overlaid transparent/transparent-modified (non scrollato) */
      .has-site-header-transparent-modified.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo.has-background:not(.keep-colors),
      .has-site-header-transparent.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo.has-background:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-default
            .is-style-site-header
            .wp-block-site-logo.has-background:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-overlaid
            .is-style-site-header
            .wp-block-site-logo.has-background:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header
            .wp-block-site-logo.has-background:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header
            .wp-block-site-logo.has-background:not(.keep-colors) {
            background: none !important;
            border-color: transparent !important;
      }

      /* Pull-down (logo): nessuna ombra quando trasparente */
      .has-site-header-transparent-modified.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header:not(.ignore-theme-options)
            .is-style-pull-down:not(.keep-colors),
      .has-site-header-transparent.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header:not(.ignore-theme-options)
            .is-style-pull-down:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-default
            .is-style-site-header
            .is-style-pull-down:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-overlaid
            .is-style-site-header
            .is-style-pull-down:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-overlaid-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header
            .is-style-pull-down:not(.keep-colors),
      .page-template-custom-overlaid-header.has-site-header-sticky:not(
                  .has-scrolled
            )
            .is-style-site-header
            .is-style-pull-down:not(.keep-colors) {
            box-shadow: none;
      }

      /* Scrolled: box-shadow sulla header sticky */
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options),
      .has-scrolled.has-site-header-sticky
            .is-style-site-header:not(.ignore-theme-options) {
            box-shadow: var(--wp--custom--shadow--sticky);
      }

      /* Scrolled: sfondo bianco */
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors),
      .has-scrolled.has-site-header-sticky
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors) {
            background-color: var(--wp--preset--color--base) !important;
            color: var(--wp--preset--color--contrast-alt) !important;
            transition:
                  background 0.3s,
                  color 0.3s,
                  border 0.3s;
      }

      /* Scrolled: logo con sfondo base */
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo.has-background:not(.keep-colors),
      .has-scrolled.has-site-header-sticky
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo.has-background:not(.keep-colors) {
            background: var(--wp--preset--color--base) !important;
            border-color: transparent !important;
      }

      /* Scrolled: rimuovi filtro dal logo (come su desktop) */
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo
            img,
      .has-scrolled.has-site-header-sticky
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo
            img {
            filter: none !important;
      }

      /* Logo più grande su mobile/tablet */
      .is-style-site-header .wp-block-site-logo {
            width: 160px !important;
            height: auto !important;
            border-bottom-width: 0 !important;
      }
      .is-style-site-header .wp-block-site-logo img {
            width: 100% !important;
            height: auto !important;
      }
}

/* Nascondi elementi al di sotto di 400px */
@media (max-width: 399px) {
      body.home .hidden-below-400 {
            display: none !important;
      }
}

@media (min-width: 1200px) {
      /* Dopo lo scroll: sfondo chiaro + testo scuro sul contenitore principale */
      .has-scrolled.has-site-header-overlaid
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors),
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options)
            > .has-background:not(.keep-colors) {
            background: var(--wp--preset--color--base) !important;
            color: var(--wp--preset--color--contrast) !important;
            transition:
                  background 0.3s,
                  color 0.3s,
                  border 0.3s;
      }

      /* Dopo lo scroll: sfondo chiaro + bordi trasparenti sul logo */
      .has-scrolled.has-site-header-overlaid
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo.has-background:not(.keep-colors),
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo.has-background:not(.keep-colors) {
            background: var(--wp--preset--color--base) !important;
            border-color: transparent !important;
            transition:
                  background 0.3s,
                  border 0.3s;
      }

      /* Dopo lo scroll: duotone rimosso dall'immagine del logo */
      .has-scrolled.has-site-header-overlaid
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo
            img,
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-logo
            img {
            filter: none !important;
      }

      /* Dopo lo scroll: titolo sito in colore scuro */
      .has-scrolled.has-site-header-overlaid
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-title:not(.keep-colors),
      .has-scrolled.has-site-header-overlaid-sticky
            .is-style-site-header:not(.ignore-theme-options)
            .wp-block-site-title:not(.keep-colors) {
            color: var(--wp--preset--color--contrast) !important;
            transition: color 0.3s;
      }
}

/* Prima dello scroll: testo (colore contrast) su sfondo trasparente */
.has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      > .has-background:not(.keep-colors),
.has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      > .has-background:not(.keep-colors) {
      color: var(--wp--preset--color--contrast) !important;
      transition:
            background 0.3s,
            color 0.3s,
            border 0.3s;
}

/* Prima dello scroll: logo completamente bianco */
.has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-site-logo
      img,
.has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-site-logo
      img {
      filter: brightness(0) invert(1) !important;
}

/* Prima dello scroll: icone social bianche */
.has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-social-links
      .wp-social-link,
.has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-social-links
      .wp-social-link {
      color: white !important;
}

/* Prima dello scroll: link navigazione e icona account in bianco */
.has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-navigation
      .wp-block-navigation-item__content,
.has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-navigation
      .wp-block-navigation-item__content,
.has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wc-block-customer-account__account-icon,
.has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wc-block-customer-account__account-icon {
      color: white !important;
}

/* ============================================================
   PAGINE NON-HOME: header overlaid sempre in versione "scrollata"
   Sovrascrive le regole "bianco prima dello scroll" su tutte le pagine
   tranne la homepage. Valido su tutti i breakpoint (desktop + mobile).
   Usa :not(.has-scrolled) nel selettore per battere la specificità
   delle regole bianche sopra.
   ============================================================ */

/* Contenitore: sfondo base */
body:not(.home).has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      > .has-background:not(.keep-colors),
body:not(.home).has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      > .has-background:not(.keep-colors) {
      background: var(--wp--preset--color--base) !important;
      color: var(--wp--preset--color--contrast) !important;
}

/* Logo: no filtro bianco */
body:not(.home).has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-site-logo
      img,
body:not(.home).has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-site-logo
      img {
      filter: none !important;
}

/* Logo: sfondo base, bordi trasparenti */
body:not(.home).has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-site-logo.has-background:not(.keep-colors),
body:not(.home).has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-site-logo.has-background:not(.keep-colors) {
      background: var(--wp--preset--color--base) !important;
      border-color: transparent !important;
}

/* Nav, social, account: colore scuro */
body:not(.home).has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-navigation
      .wp-block-navigation-item__content,
body:not(.home).has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-navigation
      .wp-block-navigation-item__content,
body:not(.home).has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-social-links
      .wp-social-link,
body:not(.home).has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wp-block-social-links
      .wp-social-link,
body:not(.home).has-site-header-overlaid:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wc-block-customer-account__account-icon,
body:not(.home).has-site-header-overlaid-sticky:not(.has-scrolled)
      .is-style-site-header:not(.ignore-theme-options)
      .wc-block-customer-account__account-icon {
      color: var(--wp--preset--color--contrast) !important;
}

/* ============================================================
   PADDING TOP cover intro (header overlaid): evita sovrapposizione con header
   su schermi < 1280px. L'elemento ha già il proprio sfondo, nessun buco bianco.
   ============================================================ */

@media (max-width: 1279px) {
      .wp-block-cover.alignfull.has-custom-content-position.is-position-bottom-center.has-fallback-image.is-style-image-blur.has-post-link {
            padding-top: 9rem !important;
      }

      .wp-block-cover.alignfull.is-light.has-fallback-image.is-style-image-blur.has-post-link {
            padding-top: 9rem !important;
      }

      .single-product #content > .wp-block-group {
            padding-top: 9rem !important;
      }
}

/* ============================================================
   COLONNE-LARGHE: impedisce il collasso come flex item (parent usa space-between)
   ============================================================ */

.colonne-larghe {
      flex-grow: 1 !important;
      max-width: 42rem !important;
      align-self: flex-end !important;
      margin-bottom: 0 !important;
}

/* .wp-block-cover.has-custom-content-position.is-position-bottom-center
      .wp-block-cover__inner-container
      > .wp-block-group {
      flex: 0 !important;
} */
.colonne-larghe > .wp-block-column {
      min-width: 0;
}

/* ============================================================
   BOTTONE WHATSAPP FLOATING
   ============================================================ */

.whatsapp-float {
      position: fixed;
      bottom: 42px;
      right: 42px;
      z-index: 9999;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 58px;
      height: 58px;
      border-radius: 50%;
      background-color: #25d366;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
      text-decoration: none;
      transition:
            background-color 0.2s ease,
            transform 0.2s ease,
            box-shadow 0.2s ease;
}

.whatsapp-float svg {
      width: 32px;
      height: 32px;
      fill: #ffffff;
      display: block;
      flex-shrink: 0;
      margin: auto;
}

.whatsapp-float:hover {
      background-color: #1da851;
      transform: scale(1.1);
      box-shadow: 0 6px 22px rgba(0, 0, 0, 0.32);
}

/* Mobile */
@media (max-width: 767px) {
      .whatsapp-float {
            width: 54px;
            height: 54px;
            bottom: 24px;
            right: 24px;
      }
      .whatsapp-float svg {
            width: 30px;
            height: 30px;
      }
}

/* ============================================================
   WOOCOMMERCE PRODUCT CARD — Pill button carrello
   Selettori unificati: loop classico (li.product) +
   WooCommerce Blocks (li.wc-block-grid__product)
   ============================================================ */

/* Contesto di posizionamento per l'overlay */
.gwc-product-image-section {
      position: relative;
      display: block;
}

/* Overlay wrapper: sempre visibile in basso a destra */
.gwc-product-hover-overlay {
      position: absolute;
      bottom: 0.9rem;
      right: 0.9rem;
      left: auto;
      z-index: 20;
      pointer-events: auto;
}

/* Pill button — cerchio con icona */
.gwc-quick-btn {
      display: inline-flex !important;
      align-items: center !important;
      justify-content: center !important;
      width: 2.75rem !important;
      height: 2.75rem !important;
      padding: 0 !important;
      border-radius: 50% !important;
      background: #fac938 !important;
      color: var(--wp--preset--color--contrast-alt) !important;
      border: none !important;
      text-decoration: none !important;
      cursor: pointer !important;
      line-height: 1 !important;
      box-shadow:
            0 4px 14px rgba(0, 0, 0, 0.2),
            0 1px 3px rgba(0, 0, 0, 0.1),
            inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
      transition:
            background 0.22s ease,
            color 0.22s ease,
            box-shadow 0.22s ease,
            transform 0.18s ease !important;
}

.gwc-quick-btn svg {
      width: 17px !important;
      height: 17px !important;
      flex-shrink: 0 !important;
      transition: transform 0.2s ease !important;
}

/* Etichetta testo: nascosta */
.gwc-quick-btn .gwc-btn-label {
      display: none !important;
}

/* Hover: colore primario del tema */
.gwc-quick-btn:hover {
      background: var(--wp--preset--color--primary) !important;
      color: var(--wp--preset--color--base) !important;
      text-decoration: none !important;
      transform: translateY(-1px) !important;
      box-shadow:
            0 6px 20px rgba(0, 0, 0, 0.22),
            0 2px 5px rgba(0, 0, 0, 0.12),
            inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
}

.gwc-quick-btn:hover svg {
      transform: scale(1.15) rotate(-6deg) !important;
}

/* Stato "aggiunto" (classe added aggiunta da WooCommerce AJAX) */
.gwc-quick-btn.added {
      background: var(--wp--preset--color--primary) !important;
      color: var(--wp--preset--color--base) !important;
}

/* Nasconde il link "Visualizza il carrello" che WC inietta dopo il bottone AJAX */
.gwc-product-hover-overlay .added_to_cart,
.gwc-product-hover-overlay a.wc-forward {
      display: none !important;
}

/* ── Iframe larghezza piena — solo su pagine specifiche ── */
/* Aggiungere qui il page-id di ogni pagina che usa iframe full-width */
/* Attualmente: page-id-16 (Privacy Policy) */
/* Quando crei la pagina Termini e Condizioni, aggiungi: body.page-id-XXX */
body.page-id-16 .entry-content .wp-block-column > div:has(> iframe) {
      width: 100% !important;
      display: block !important;
}
body.page-id-16 .entry-content .wp-block-column iframe {
      width: 100% !important;
      display: block !important;
      box-sizing: border-box;
}

/* =====================================================================
   Ombreggio leggero sulle anteprime immagini prodotti
   – loop classico WooCommerce (ul.products img)
   – blocchi WooCommerce (wc-block-grid, All Products, Featured Products)
   ===================================================================== */

/* Loop classico */
:root ul.products img {
      box-shadow:
            0 2px 8px rgba(0, 0, 0, 0.1),
            0 1px 3px rgba(0, 0, 0, 0.06);
      transition: box-shadow 0.25s ease;
}
:root ul.products li.product:hover img {
      box-shadow:
            0 6px 18px rgba(0, 0, 0, 0.14),
            0 2px 6px rgba(0, 0, 0, 0.08);
}

/* Blocchi WooCommerce (Product Collection, Featured Products, All Products) */
:root .wc-block-grid__product-image,
:root .wc-block-components-product-image,
:root .wp-block-woocommerce-product-image {
      border-radius: 0.33rem !important;
      border-bottom-right-radius: 3rem !important;
      overflow: hidden;

      box-shadow:
            0 2px 8px rgba(0, 0, 0, 0.1),
            0 1px 3px rgba(0, 0, 0, 0.06);
      transition: box-shadow 0.25s ease;
}
:root .wc-block-grid__product:hover .wc-block-grid__product-image,
:root .wc-block-components-product-image:hover,
:root .wc-block-product:hover .wp-block-woocommerce-product-image {
      box-shadow:
            0 6px 18px rgba(0, 0, 0, 0.14),
            0 2px 6px rgba(0, 0, 0, 0.08);
}

/* ============================================================
   FONT OVERRIDE — WooCommerce blocks → EB Garamond
   WC blocks usano __experimentalSkipSerialization per fontFamily,
   quindi le modifiche da editor non vengono serializzate in CSS.
   Override esplicito qui per tutti i componenti WC rilevanti.
   ============================================================ */

/* Variabile di comodo */
:root {
      --wc-font-body: var(--wp--preset--font-family--eb-garamond);
}

/* Contenitori principali WC */
.wc-block-grid,
.wc-block-grid__product,
.wc-block-components-product-title,
.wc-block-grid__product-title,
.wc-block-components-product-price,
.wc-block-grid__product-price,
.wc-block-components-product-sale-badge,
.wc-block-grid__product-onsale,
.wc-block-components-product-rating,
.wc-block-product-review-rating,
/* Checkout e Cart */
.wc-block-checkout,
.wc-block-cart,
.wc-block-components-checkout-step,
.wc-block-components-form,
.wc-block-components-address-form,
.wc-block-components-text-input,
.wc-block-components-select,
.wc-block-components-checkbox,
.wc-block-components-radio-control,
.wc-block-components-notice-banner,
.wc-block-components-order-summary,
.wc-block-components-totals-item,
.wc-block-components-coupon,
.wc-block-components-payment-method-label,
.wc-block-components-shipping-rates-control,
/* Mini cart */
.wc-block-mini-cart__drawer,
.wc-block-mini-cart-contents,
.wc-block-components-sidebar,
/* Filtri e liste */
.wc-block-active-filters,
.wc-block-attribute-filter,
.wc-block-price-filter,
.wc-block-stock-filter,
/* Store notices */
.wc-block-store-notices,
/* Pulsanti WC */
.wc-block-components-button,
.wc-block-components-product-button,
.wc-block-cart__submit-button,
.wc-block-checkout__actions_row .wc-block-components-checkout-place-order-button,
/* Blocchi FSE WC (Product Collection ecc.) */
.wp-block-woocommerce-product-template,
.wp-block-woocommerce-product-title,
.wp-block-woocommerce-product-price,
.wp-block-woocommerce-product-rating,
.wp-block-woocommerce-add-to-cart,
.wp-block-woocommerce-product-sale-badge,
.wp-block-woocommerce-product-sku,
.wp-block-woocommerce-product-stock-indicator,
.wp-block-woocommerce-breadcrumbs,
/* Pagine account */
.woocommerce-account .woocommerce,
.woocommerce-page .woocommerce {
      font-family: var(--wc-font-body) !important;
}

/* Input e textarea nei form WC */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-select select,
.wc-block-components-form input,
.wc-block-components-form select,
.wc-block-components-form textarea {
      font-family: var(--wc-font-body) !important;
}

/* ============================================================
   BUTTON OVERRIDE — WooCommerce blocks
   wc-blocks.css forza su TUTTI i .wp-block-button__link:
     font-family: -apple-system (override del font del tema)
     color: #fff (override del colore testo del tema)
   Qui ripristiniamo font e colori del tema per i pulsanti WC.
   ============================================================ */

/* Font: ripristina EB Garamond (override del system font di wc-blocks.css) */
.wp-block-button__link,
.wp-element-button,
.wc-block-components-button,
.wc-block-grid__product-add-to-cart .wp-block-button__link,
.wc-block-components-product-button .wp-block-button__link,
.add_to_cart_button {
      font-family: var(--wc-font-body) !important;
}

/* Rimuovi bordi dal tema globale nelle zone varianti e add-to-cart.
   global.css del tema applica border:1px solid a tutti i table/td/th,
   e WC applica border ai select. Azzeriamo tutto nella form.cart. */

/* Tabella varianti e celle */
.woocommerce div.product form.cart table,
.woocommerce div.product form.cart table td,
.woocommerce div.product form.cart table th,
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
      border: 0 !important;
      box-shadow: none !important;
}

/* Select varianti (border da --wc-form-border-color) */
.woocommerce div.product form.cart select,
.woocommerce div.product form.cart .variations select {
      border: 0 !important;
      box-shadow: none !important;
      outline: none !important;
}

/* Wrapper zona variazione (prezzo/disponibilità variante selezionata) */
.woocommerce div.product .woocommerce-variation,
.woocommerce div.product .single_variation_wrap,
.woocommerce div.product .woocommerce-variation-add-to-cart {
      border: 0 !important;
      box-shadow: none !important;
}

/* ============================================================
   MENU MOBILE — Side panel elegante
   Trasforma l'overlay full-screen standard in un pannello
   laterale che scorre da destra, con backdrop scuro e
   tipografia serif raffinata (EB Garamond, italic).
   Attivo solo su .mobile-only-nav (hamburger < 1280px).
   ============================================================ */

@keyframes gwc-backdrop-fade {
      from {
            opacity: 0;
      }
      to {
            opacity: 1;
      }
}

@keyframes gwc-panel-slide {
      from {
            transform: translateX(110%);
      }
      to {
            transform: translateX(0);
      }
}

@keyframes gwc-item-appear {
      from {
            opacity: 0;
            transform: translateX(1.4rem);
      }
      to {
            opacity: 1;
            transform: translateX(0);
      }
}

/* 1 — Backdrop: scuro e sfumato invece del verde pieno */
.mobile-only-nav .wp-block-navigation__responsive-container.is-menu-open {
      background: rgba(8, 10, 9, 0.76) !important;
      background-color: rgba(8, 10, 9, 0.76) !important;
      backdrop-filter: blur(5px) !important;
      -webkit-backdrop-filter: blur(5px) !important;
      padding-inline: 0 !important;
      animation: gwc-backdrop-fade 0.3s ease both !important;
}

/* 2 — Dialog: pannello che scorre da destra */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__responsive-dialog {
      max-width: 22rem !important;
      width: min(84vw, 22rem) !important;
      min-height: 100vh !important;
      height: 100vh !important;
      margin: 0 !important;
      margin-left: auto !important;
      margin-block-start: 0 !important;
      background: var(--wp--preset--color--primary) !important;
      border-left: 3px solid var(--wp--preset--color--secondary) !important;
      padding: 0 !important;
      overflow-y: auto !important;
      overflow-x: hidden !important;
      position: relative !important;
      display: flex !important;
      flex-direction: column !important;
      animation: gwc-panel-slide 0.44s cubic-bezier(0.16, 1, 0.3, 1) both !important;
}

/* Cerchio decorativo grande in basso a destra */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__responsive-dialog::before {
      content: "";
      position: absolute;
      bottom: -6rem;
      right: -6rem;
      width: 18rem;
      height: 18rem;
      border-radius: 50%;
      border: 0.5rem solid var(--wp--preset--color--secondary);
      opacity: 0.1;
      pointer-events: none;
      z-index: 0;
}

/* Cerchio decorativo piccolo in alto a sinistra */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__responsive-dialog::after {
      content: "";
      position: absolute;
      top: -3rem;
      left: -3rem;
      width: 9rem;
      height: 9rem;
      border-radius: 50%;
      border: 0.3rem solid var(--wp--preset--color--secondary);
      opacity: 0.13;
      pointer-events: none;
      z-index: 0;
}

/* 3 — Content area: flex colonna per spingere gli extra in fondo */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__responsive-container-content {
      padding: 4.5rem 2rem 2rem !important;
      display: flex !important;
      flex-direction: column !important;
      flex: 1 !important;
      min-height: 0 !important;
      position: relative !important;
      z-index: 1 !important;
}

/* Accento decorativo: linea ambra sopra il primo item */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__responsive-container-content::before {
      content: "";
      display: block;
      width: 2.2rem;
      height: 2px;
      background: var(--wp--preset--color--secondary);
      opacity: 0.7;
      margin-bottom: 1.5rem;
}

/* 4 — Lista voci: colonna a larghezza piena */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container {
      display: flex !important;
      flex-direction: column !important;
      gap: 0 !important;
      width: 100% !important;
      max-width: 100% !important;
}

/* 5 — Singola voce: separatore sottile + animazione scalata */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item {
      border-bottom: 1px solid rgba(255, 255, 255, 0.09) !important;
      min-height: unset !important;
      overflow: visible !important;
      animation: gwc-item-appear 0.5s cubic-bezier(0.16, 1, 0.3, 1) both !important;
}

/* Staggered delays: ogni voce entra 60ms dopo la precedente */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item:nth-child(1) {
      animation-delay: 0.13s !important;
}
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item:nth-child(2) {
      animation-delay: 0.19s !important;
}
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item:nth-child(3) {
      animation-delay: 0.25s !important;
}
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item:nth-child(4) {
      animation-delay: 0.31s !important;
}
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item:nth-child(5) {
      animation-delay: 0.37s !important;
}
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item:nth-child(n + 6) {
      animation-delay: 0.43s !important;
}

/* 6 — Testo voce: grande, italic, EB Garamond */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item
      > .wp-block-navigation-item__content {
      font-size: clamp(1.55rem, 5vw, 1.95rem) !important;
      font-family: var(
            --wp--preset--font-family--eb-garamond,
            "EB Garamond",
            Georgia,
            serif
      ) !important;
      font-weight: 700 !important;
      font-style: italic !important;
      letter-spacing: 0.015em !important;
      text-transform: none !important;
      color: #ffffff !important;
      padding: 0.9rem 0 !important;
      padding-left: 0 !important;
      line-height: 1.25 !important;
      display: block !important;
      transition:
            color 0.2s ease,
            padding-left 0.28s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

/* Hover: scivola a destra e diventa ambra */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      > .wp-block-navigation-item:hover
      > .wp-block-navigation-item__content {
      color: var(--wp--preset--color--secondary) !important;
      padding-left: 0.65rem !important;
      text-decoration: none !important;
}

/* 7 — Bottone chiudi: cerchio leggero in alto a destra */
.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__responsive-container-close {
      position: absolute !important;
      top: 1.1rem !important;
      right: 1.1rem !important;
      left: auto !important;
      z-index: 10 !important;
      width: 2.4rem !important;
      height: 2.4rem !important;
      margin-block: 0 !important;
      padding: 0 !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
      background: transparent !important;
      border: 1.5px solid rgba(255, 255, 255, 0.3) !important;
      border-radius: 50% !important;
      color: #ffffff !important;
      box-shadow: none !important;
      transition:
            border-color 0.2s ease,
            color 0.2s ease,
            background 0.2s ease !important;
}

.mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__responsive-container-close:hover {
      border-color: var(--wp--preset--color--secondary) !important;
      color: var(--wp--preset--color--secondary) !important;
      background: rgba(255, 192, 34, 0.07) !important;
}

/* Forza bianco sui link del menu nel pannello overlay — alta specificità per
   battere le regole body:not(.home) che impostano colore scuro sui nav link */
body
      .is-style-site-header
      .mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      .wp-block-navigation-item
      a.wp-block-navigation-item__content,
body
      .is-style-site-header
      .mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation__container
      .wp-block-navigation-item
      span.wp-block-navigation-item__content {
      color: #ffffff !important;
      font-weight: 700 !important;
}

/* Toggle freccia sottomenu: bianco */
body
      .is-style-site-header
      .mobile-only-nav
      .wp-block-navigation__responsive-container.is-menu-open
      .wp-block-navigation-submenu__toggle {
      color: #ffffff !important;
      border-color: rgba(255, 255, 255, 0.4) !important;
}

/* L'SVG chevron del submenu: sempre grigio */
.wp-block-navigation__submenu-icon svg path,
.wp-block-navigation-submenu__toggle svg path {
      stroke: #999999;
}

/* 9 — Extras iniettati (social + account): in fondo al pannello, con animazione */
.mobile-menu-extras {
      padding: 1.2rem 0 !important;
      margin-top: auto !important;
      border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
      animation: gwc-item-appear 0.5s 0.5s cubic-bezier(0.16, 1, 0.3, 1) both !important;
      position: relative !important;
      z-index: 1 !important;
}

/* ============================================================
   SEZIONE "SFERRUZZIAMO INSIEME" — Gallery full-width
   La gallery ha align:full nel DB → sfugge al contentSize:800px
   del gruppo padre. Qui solo il padding laterale minimo.
   ============================================================ */

body.home .wp-block-gallery.is-style-abs-curved.alignfull {
      padding-left: 1.5rem !important;
      padding-right: 1.5rem !important;
      box-sizing: border-box !important;
}

/* ============================================================
   PAGINA DI PAGAMENTO (checkout) — nessun padding-top
   ============================================================ */
/* body.woocommerce-checkout
      .wp-block-group.has-global-padding.is-layout-constrained {
      padding-top: 0 !important;
} */
