:root{
  --xxv-red:#8E001C;
  --xxv-yellow:#FFB300;
  --xxv-white:#FFFFFF;
  --xxv-ink:#171717;
  --xxv-muted:#666666;
  --xxv-line:#E5E5E5;
  --xxv-soft:#F7F7F7;
}

html,body{background:var(--xxv-white);color:var(--xxv-ink);}
body{margin:0;}
.wp-site-blocks{min-height:100vh;background:var(--xxv-white);}
.xxv-shell{max-width:1180px;margin-inline:auto;padding-inline:22px;box-sizing:border-box;}

/* Header */
.xxv-header{
  background:#fff;
  border-bottom:1px solid var(--xxv-line);
  position:relative;
  z-index:20;
}
.xxv-header:after{
  content:"";
  display:block;
  height:4px;
  background:linear-gradient(90deg,var(--xxv-red) 0 74%,var(--xxv-yellow) 74% 100%);
}
.xxv-header-inner{min-height:82px;padding-block:10px;}
.xxv-brand{
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--xxv-ink)!important;
  text-decoration:none!important;
}
.xxv-logo{
  display:block;
  width:62px;
  height:62px;
  flex:0 0 62px;
  background:url('../images/logo-xxv-legio-martia.svg') center/contain no-repeat;
}
.xxv-brand-copy{display:flex;flex-direction:column;line-height:1.15;}
.xxv-brand-copy strong{font-size:1.06rem;font-weight:900;}
.xxv-brand-copy small{
  margin-top:5px;
  color:var(--xxv-red);
  text-transform:uppercase;
  font-size:.70rem;
  font-weight:900;
  letter-spacing:.12em;
}
.xxv-nav a{color:var(--xxv-ink)!important;text-decoration:none!important;}
.xxv-nav a:hover{color:var(--xxv-red)!important;}

/* Hero */
.xxv-hero{
  background:#fff;
  border-bottom:1px solid var(--xxv-line);
  padding:32px 0 38px;
}
.xxv-hero h1{margin:.2em 0 .25em;}
.xxv-hero-logo{
  width:min(245px,80vw);
  aspect-ratio:1;
  margin-inline:auto;
  background:url('../images/logo-xxv-legio-martia.svg') center/contain no-repeat;
}
.xxv-kicker{
  margin:0;
  color:var(--xxv-red);
  font-weight:900;
  letter-spacing:.13em;
  text-transform:uppercase;
  font-size:.76rem;
}

/* Home cards */
.xxv-choice-grid{margin-bottom:48px!important;}
.xxv-choice-card{
  height:100%;
  box-sizing:border-box;
  background:#fff;
  border:1px solid var(--xxv-line);
  border-radius:10px;
  box-shadow:0 8px 26px rgba(0,0,0,.045);
  position:relative;
  overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease;
}
.xxv-choice-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:6px;
}
.xxv-card-red:before{background:var(--xxv-red);}
.xxv-card-yellow:before{background:var(--xxv-yellow);}
.xxv-choice-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.075);}
.xxv-section-heading{
  margin-top:14px;
  margin-bottom:18px;
  padding-bottom:12px;
  border-bottom:3px solid var(--xxv-red);
}

/* Product grids */
.wc-block-product,
.woocommerce .wc-block-grid__product{
  background:#fff;
  border:1px solid var(--xxv-line);
  border-radius:10px;
  padding:14px;
  box-sizing:border-box;
}
.wc-block-components-product-sale-badge,
.woocommerce span.onsale{
  background:var(--xxv-yellow)!important;
  color:var(--xxv-ink)!important;
  border:0!important;
  font-weight:900!important;
}
.woocommerce div.product .price ins,
.wc-block-components-product-price__value.is-discounted{
  color:var(--xxv-red)!important;
  text-decoration:none;
  font-weight:900;
}
.woocommerce div.product .price del{opacity:.5;}

/* Buttons */
.wp-element-button,
.woocommerce button.button,
.woocommerce a.button,
.wc-block-components-button{
  background:var(--xxv-red)!important;
  color:#fff!important;
  border-radius:6px!important;
  border:0!important;
  font-weight:850!important;
  transition:filter .15s ease,transform .15s ease;
}
.wp-element-button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.wc-block-components-button:hover{
  filter:brightness(.92);
  transform:translateY(-1px);
}

/* Single product */
.xxv-product-page{background:#fff;}
.xxv-product-main{margin-top:22px;}
.xxv-product-main .wp-block-post-title{font-size:clamp(2rem,4vw,3.2rem);}
.woocommerce-product-gallery,
.wp-block-woocommerce-product-image-gallery{
  border:1px solid var(--xxv-line);
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}

/* Forms / cart / checkout */
input,select,textarea{
  border-color:#D7D7D7!important;
  border-radius:6px!important;
}
.wc-block-components-checkout-step,
.wc-block-components-sidebar-layout .wc-block-components-main{
  background:#fff;
}
.wc-block-components-sidebar{
  background:var(--xxv-soft);
  border-radius:10px;
}

/* Footer */
.xxv-footer{
  margin-top:64px;
  padding-block:28px;
  background:var(--xxv-soft);
  border-top:1px solid var(--xxv-line);
}

/* Utility statuses */
.xxv-status-open{color:#16794A;font-weight:900;}
.xxv-status-soon{color:#9A6700;font-weight:900;}
.xxv-status-closed{color:#A11A1A;font-weight:900;}

@media (max-width:900px){
  .xxv-shell{padding-inline:16px;}
  .xxv-header-inner{min-height:72px;}
  .xxv-logo{width:52px;height:52px;flex-basis:52px;}
  .xxv-brand-copy strong{font-size:.96rem;}
  .xxv-brand-copy small{font-size:.64rem;}
  .xxv-hero{padding-top:26px;}
}

@media (max-width:781px){
  .xxv-hero-logo{width:180px;margin-top:16px;}
  .xxv-choice-card{min-height:auto;}
  .xxv-product-main{gap:24px!important;}
}

/* ===== Homepage refinements v1.1.1 ===== */
.xxv-home-content{padding-top:34px!important;}

.xxv-choice-grid{
  align-items:stretch!important;
  margin-top:0!important;
  margin-bottom:48px!important;
}

.xxv-choice-grid > .wp-block-column{
  display:flex!important;
}

.xxv-choice-card{
  width:100%;
  min-height:250px;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  box-sizing:border-box!important;
  padding:28px!important;
  background:#FFFFFF!important;
  border:1px solid var(--xxv-line)!important;
  border-radius:10px!important;
  overflow:hidden!important;
}

.xxv-choice-card:before{
  content:none!important;
  display:none!important;
}

.xxv-card-yellow{border-left:6px solid var(--xxv-yellow)!important;}
.xxv-card-red{border-left:6px solid var(--xxv-red)!important;}

.xxv-choice-card .xxv-kicker{
  width:auto!important;
  margin:0 0 12px 0!important;
  padding:0!important;
  color:var(--xxv-red)!important;
}

.xxv-choice-card h2{
  margin:0 0 14px 0!important;
  padding:0!important;
}

.xxv-choice-card > p:not(.xxv-kicker){
  margin:0 0 22px 0!important;
  padding:0!important;
}

.xxv-card-buttons{
  margin-top:auto!important;
  padding-top:6px!important;
  justify-content:flex-start!important;
}

.xxv-card-buttons .wp-block-button{margin:0!important;}

.xxv-yellow-button .wp-block-button__link{
  background:var(--xxv-yellow)!important;
  color:var(--xxv-ink)!important;
}

.xxv-red-button .wp-block-button__link{
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
}

.xxv-section-heading{margin-top:0!important;}

@media (max-width:781px){
  .xxv-choice-card{min-height:225px;}
}

/* ===== Mobile navigation fix v1.1.2 ===== */
@media (max-width: 900px){

  .wp-block-navigation__responsive-container.is-menu-open{
    padding:0!important;
    background:#FFFFFF!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content{
    box-sizing:border-box!important;
    width:100%!important;
    min-height:100vh!important;
    padding:92px 28px 48px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    text-align:center!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content
  .wp-block-navigation__container{
    width:100%!important;
    max-width:420px!important;
    margin:0 auto!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:0!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item{
    width:100%!important;
    display:flex!important;
    justify-content:center!important;
    text-align:center!important;
    margin:0!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content{
    width:auto!important;
    max-width:100%!important;
    padding:15px 12px!important;
    margin:0 auto!important;
    text-align:center!important;
    font-size:1.25rem!important;
    line-height:1.25!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-close{
    top:20px!important;
    right:20px!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wc-block-mini-cart{
    width:100%!important;
    display:flex!important;
    justify-content:center!important;
    margin:10px auto 0!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wc-block-mini-cart__button{
    margin:0 auto!important;
    padding:12px!important;
  }
}

@media (max-width: 480px){
  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__responsive-container-content{
    padding-left:22px!important;
    padding-right:22px!important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item__content{
    font-size:1.16rem!important;
  }
}

/* ===== Catalogo Biglietti v1.2.0 ===== */
.xxv-ticket-catalog{
  background:#FFFFFF;
}

.xxv-ticket-catalog .woocommerce-breadcrumb,
.xxv-ticket-catalog .wc-block-breadcrumbs{
  margin-bottom:26px!important;
  color:var(--xxv-muted);
  font-size:.88rem;
}

.xxv-ticket-catalog-head{
  max-width:820px!important;
  margin-left:0!important;
  margin-bottom:34px!important;
}

.xxv-ticket-catalog-head h1{
  margin:.12em 0 .28em!important;
  font-size:clamp(2.25rem,5vw,4rem)!important;
  letter-spacing:-.035em;
}

.xxv-ticket-catalog-intro{
  margin:0!important;
  max-width:760px;
  color:var(--xxv-muted);
  font-size:1.05rem;
  line-height:1.62;
}

.xxv-ticket-regulation-link{
  margin:14px 0 0!important;
  font-size:.94rem;
}

.xxv-ticket-regulation-link a{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:var(--xxv-red)!important;
  text-decoration:underline;
  text-underline-offset:3px;
}

.xxv-ticket-regulation-link a:after{
  content:"→";
  text-decoration:none;
}

/* Le card della categoria Biglietti non devono sembrare normali schede e-commerce. */
.xxv-ticket-grid .wc-block-product{
  position:relative;
  display:flex!important;
  flex-direction:column!important;
  min-height:270px;
  padding:0!important;
  overflow:hidden;
  background:#FFFFFF!important;
  border:1px solid var(--xxv-line)!important;
  border-left:7px solid var(--xxv-yellow)!important;
  border-radius:10px!important;
  box-shadow:0 8px 25px rgba(0,0,0,.045);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}

.xxv-ticket-grid .wc-block-product:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(0,0,0,.075);
  border-color:#D7D7D7!important;
}

/* Nasconde eventuali placeholder/immagini: una partita è presentata come evento. */
.xxv-ticket-grid .wc-block-components-product-image,
.xxv-ticket-grid .wc-block-grid__product-image,
.xxv-ticket-grid .wp-block-woocommerce-product-image{
  display:none!important;
}

.xxv-ticket-card-inner{
  width:100%!important;
  height:100%;
  min-height:270px;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  padding:27px 28px 25px!important;
  box-sizing:border-box;
}

.xxv-ticket-title{
  margin:0 0 14px!important;
  width:100%;
  font-size:clamp(1.45rem,2.3vw,2rem)!important;
  line-height:1.15!important;
  letter-spacing:-.02em;
}

.xxv-ticket-title a{
  color:var(--xxv-ink)!important;
  text-decoration:none!important;
}

.xxv-ticket-title a:hover{
  color:var(--xxv-red)!important;
}

/* Metadati prodotti dal plugin Shop Core, quando presenti nel loop. */
.xxv-ticket-grid .xxv-ticket-loop-date{
  order:2;
  margin:0 0 9px!important;
  color:var(--xxv-muted);
  font-size:.94rem;
}

.xxv-ticket-grid .xxv-ticket-loop-date small{
  font-size:inherit!important;
}

.xxv-ticket-grid .xxv-ticket-loop-status{
  order:3;
  display:inline-flex!important;
  width:auto!important;
  margin:0 0 13px!important;
  padding:6px 10px!important;
  border-radius:999px;
  font-size:.78rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.035em;
  text-transform:uppercase;
}

.xxv-ticket-grid .xxv-ticket-status-open{
  color:#13683D!important;
  background:#EAF7F0!important;
}

.xxv-ticket-grid .xxv-ticket-status-scheduled,
.xxv-ticket-grid .xxv-ticket-status-not_available{
  color:#795500!important;
  background:#FFF4CF!important;
}

.xxv-ticket-grid .xxv-ticket-status-closed{
  color:#6C6C6C!important;
  background:#F0F0F0!important;
}

.xxv-ticket-grid .xxv-ticket-status-sold_out{
  color:#8E001C!important;
  background:#FBEAEC!important;
}

.xxv-ticket-price{
  margin-top:auto!important;
  margin-bottom:15px!important;
  font-size:1.08rem!important;
}

.xxv-ticket-grid .xxv-ticket-unavailable{
  display:inline-block;
  color:var(--xxv-muted)!important;
  font-size:.92rem;
  line-height:1.35;
}

.xxv-ticket-action{
  margin-top:auto!important;
  width:auto!important;
}

.xxv-ticket-action .wp-block-button__link,
.xxv-ticket-action .wc-block-components-product-button__button{
  min-height:43px!important;
  padding:11px 17px!important;
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
  font-size:.92rem!important;
}

/* La barra gialla identifica visivamente tutta la sezione ticket. */
.xxv-ticket-grid .wc-block-product:has(.xxv-ticket-status-sold_out){
  border-left-color:#8E001C!important;
}

.xxv-ticket-grid .wc-block-product:has(.xxv-ticket-status-closed){
  border-left-color:#B7B7B7!important;
}

.xxv-ticket-pagination{
  margin-top:32px!important;
}

/* fallback per loop classico WooCommerce, se usato da WordPress/Woo */
.tax-product_cat.term-biglietti ul.products{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:24px!important;
}

.tax-product_cat.term-biglietti ul.products li.product{
  float:none!important;
  width:auto!important;
  min-height:250px;
  padding:26px!important;
  border:1px solid var(--xxv-line)!important;
  border-left:7px solid var(--xxv-yellow)!important;
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 25px rgba(0,0,0,.045);
}

.tax-product_cat.term-biglietti ul.products li.product img{
  display:none!important;
}

.tax-product_cat.term-biglietti ul.products li.product .woocommerce-loop-product__title{
  font-size:1.55rem!important;
  color:var(--xxv-ink)!important;
}

.tax-product_cat.term-biglietti ul.products li.product .xxv-ticket-loop-date{
  margin-top:4px;
  color:var(--xxv-muted);
}

.tax-product_cat.term-biglietti ul.products li.product .xxv-ticket-loop-status{
  display:inline-block;
  margin-top:8px;
  padding:6px 10px;
  border-radius:999px;
  background:#FFF4CF;
}

@media (max-width:820px){
  .xxv-ticket-grid .wc-block-product{
    min-height:235px;
  }

  .xxv-ticket-card-inner{
    min-height:235px;
    padding:23px 22px!important;
  }

  .tax-product_cat.term-biglietti ul.products{
    grid-template-columns:1fr!important;
  }
}

@media (max-width:600px){
  .xxv-ticket-catalog{
    padding-top:26px!important;
  }

  .xxv-ticket-catalog-head{
    margin-bottom:26px!important;
  }

  .xxv-ticket-catalog-head h1{
    font-size:2.35rem!important;
  }

  .xxv-ticket-grid .wc-block-product{
    border-left-width:6px!important;
  }

  .xxv-ticket-title{
    font-size:1.45rem!important;
  }
}

/* ===== Biglietti: niente prezzi nel catalogo v1.2.1 ===== */

/* Il catalogo Biglietti mostra solo partita, data, stato e accesso ai dettagli. */
.xxv-ticket-grid .wc-block-components-product-price,
.xxv-ticket-grid .wp-block-woocommerce-product-price,
.xxv-ticket-grid .price,
.xxv-ticket-grid .xxv-ticket-price,
.tax-product_cat.term-biglietti ul.products li.product .price,
.tax-product_cat.term-biglietti ul.products li.product .woocommerce-Price-amount,
.tax-product_cat.term-biglietti ul.products li.product .xxv-ticket-price{
  display:none!important;
}

/*
 * Se Shop Core aggiunge nel loop testi economici (es. diritto di prevendita)
 * dentro wrapper dedicati, vengono nascosti qui: le informazioni economiche
 * restano visibili soltanto nella pagina della singola partita.
 */
.xxv-ticket-grid .xxv-ticket-presale,
.xxv-ticket-grid .xxv-ticket-fee,
.xxv-ticket-grid .xxv-presale-info,
.xxv-ticket-grid .xxv-ticket-price-note,
.tax-product_cat.term-biglietti .xxv-ticket-presale,
.tax-product_cat.term-biglietti .xxv-ticket-fee,
.tax-product_cat.term-biglietti .xxv-presale-info,
.tax-product_cat.term-biglietti .xxv-ticket-price-note{
  display:none!important;
}

/* Il pulsante resta nella parte bassa della card anche senza il blocco prezzo. */
.xxv-ticket-action{
  margin-top:auto!important;
}

/* ===== Catalogo Biglietti v1.2.2: immagini + data in evidenza ===== */

/*
 * Ripristina l'immagine nella categoria Biglietti.
 * Le sorgenti consigliate sono quadrate 1200x1200 px.
 */
.xxv-ticket-grid .xxv-ticket-image,
.xxv-ticket-grid .wp-block-woocommerce-product-image{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  background:var(--xxv-soft);
  overflow:hidden;
}

.xxv-ticket-grid .xxv-ticket-image a,
.xxv-ticket-grid .xxv-ticket-image .wc-block-components-product-image,
.xxv-ticket-grid .xxv-ticket-image img{
  display:block!important;
  width:100%!important;
}

.xxv-ticket-grid .xxv-ticket-image img{
  aspect-ratio:1 / 1!important;
  height:auto!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:0!important;
}

/* Card biglietto: immagine sopra, contenuto sotto. */
.xxv-ticket-grid .wc-block-product{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  padding:0!important;
}

.xxv-ticket-card-inner{
  flex:1 1 auto;
  min-height:230px!important;
  padding:24px 26px 24px!important;
}

/*
 * Il blocco "prezzo" viene riutilizzato come data/ora,
 * con la stessa gerarchia visiva che aveva il prezzo.
 */
.xxv-ticket-grid .xxv-ticket-date-slot,
.xxv-ticket-grid .wp-block-woocommerce-product-price{
  display:block!important;
  margin:2px 0 15px!important;
}

.xxv-ticket-feature-date{
  display:block;
  color:var(--xxv-red)!important;
  font-size:1.08rem!important;
  line-height:1.25!important;
  font-weight:900!important;
  letter-spacing:.005em;
}

/* Nasconde la seconda copia della data prodotta da Shop Core nel loop. */
.xxv-ticket-grid .xxv-ticket-loop-date,
.tax-product_cat.term-biglietti .xxv-ticket-loop-date{
  display:none!important;
}

/* Nel catalogo non deve comparire alcuna informazione economica. */
.xxv-ticket-grid .xxv-ticket-preorder-note,
.xxv-ticket-grid .xxv-ticket-presale,
.xxv-ticket-grid .xxv-ticket-fee,
.xxv-ticket-grid .xxv-presale-info,
.xxv-ticket-grid .xxv-ticket-price-note{
  display:none!important;
}

/*
 * Formato immagine uniforme anche per il normale catalogo prodotti:
 * le immagini sorgente possono essere preparate tutte a 1200x1200 px.
 */
.wc-block-product .wc-block-components-product-image img,
.woocommerce ul.products li.product img{
  aspect-ratio:1 / 1;
  object-fit:cover;
  object-position:center;
}

/* Desktop: con due colonne le immagini restano proporzionate e leggibili. */
@media (min-width:821px){
  .xxv-ticket-grid .wc-block-product{
    height:100%;
  }
}

/* Smartphone: nessun crop anomalo e card a tutta larghezza. */
@media (max-width:600px){
  .xxv-ticket-card-inner{
    min-height:210px!important;
    padding:22px 21px!important;
  }

  .xxv-ticket-feature-date{
    font-size:1rem!important;
  }
}

/* ===== Catalogo Biglietti v1.2.3: data nativa Shop Core in evidenza ===== */

/* Prezzi sempre nascosti nel catalogo Biglietti. */
.xxv-ticket-grid .wc-block-components-product-price,
.xxv-ticket-grid .wp-block-woocommerce-product-price,
.xxv-ticket-grid .price,
.tax-product_cat.term-biglietti ul.products li.product .price{
  display:none!important;
}

/*
 * Il wrapper interno diventa trasparente al layout:
 * titolo, data/status generati da Shop Core e pulsante possono essere
 * ordinati insieme senza dipendere dagli hook di rendering dei prezzi.
 */
.xxv-ticket-grid .wc-block-product{
  display:grid!important;
  grid-template-columns:1fr!important;
  grid-template-rows:auto auto auto auto auto!important;
  align-content:start!important;
  min-height:0!important;
  padding:0 0 24px!important;
}

.xxv-ticket-grid .xxv-ticket-card-inner{
  display:contents!important;
}

/* Immagine */
.xxv-ticket-grid .xxv-ticket-image,
.xxv-ticket-grid .wp-block-woocommerce-product-image{
  grid-row:1!important;
  width:100%!important;
  margin:0 0 0!important;
}

.xxv-ticket-grid .xxv-ticket-image img,
.xxv-ticket-grid .wp-block-woocommerce-product-image img{
  display:block!important;
  width:100%!important;
  aspect-ratio:1 / 1!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Titolo */
.xxv-ticket-grid .xxv-ticket-title{
  grid-row:2!important;
  margin:22px 26px 8px!important;
  width:auto!important;
}

/* Data e ora reali, già prodotte da Shop Core. */
.xxv-ticket-grid .xxv-ticket-loop-date{
  display:block!important;
  grid-row:3!important;
  margin:0 26px 12px!important;
  color:var(--xxv-red)!important;
  font-size:1.08rem!important;
  line-height:1.25!important;
  font-weight:900!important;
  letter-spacing:.005em!important;
}

.xxv-ticket-grid .xxv-ticket-loop-date small{
  font:inherit!important;
  color:inherit!important;
}

/* Stato prenotazioni subito sotto la data. */
.xxv-ticket-grid .xxv-ticket-loop-status{
  grid-row:4!important;
  justify-self:start!important;
  margin:0 26px 20px!important;
}

/* CTA in fondo alla parte testuale, senza grande spazio vuoto. */
.xxv-ticket-grid .xxv-ticket-action{
  grid-row:5!important;
  justify-self:start!important;
  margin:0 26px!important;
  width:auto!important;
}

/* Elimina il vecchio min-height che rendeva le card inutilmente alte. */
.xxv-ticket-grid .xxv-ticket-card-inner{
  min-height:0!important;
  padding:0!important;
}

/* Eventuali note economiche non devono comparire nel catalogo. */
.xxv-ticket-grid .xxv-ticket-preorder-note,
.xxv-ticket-grid .xxv-ticket-presale,
.xxv-ticket-grid .xxv-ticket-fee,
.xxv-ticket-grid .xxv-presale-info,
.xxv-ticket-grid .xxv-ticket-price-note{
  display:none!important;
}

/* Fallback loop classico */
.tax-product_cat.term-biglietti ul.products li.product .xxv-ticket-loop-date{
  display:block!important;
  margin:8px 0 12px!important;
  color:var(--xxv-red)!important;
  font-size:1.05rem!important;
  line-height:1.25!important;
  font-weight:900!important;
}

@media (max-width:600px){
  .xxv-ticket-grid .xxv-ticket-title{
    margin:20px 21px 8px!important;
  }

  .xxv-ticket-grid .xxv-ticket-loop-date{
    margin-left:21px!important;
    margin-right:21px!important;
    font-size:1rem!important;
  }

  .xxv-ticket-grid .xxv-ticket-loop-status{
    margin-left:21px!important;
    margin-right:21px!important;
  }

  .xxv-ticket-grid .xxv-ticket-action{
    margin-left:21px!important;
    margin-right:21px!important;
  }
}

/* ===== Data evento dinamica v1.2.4 ===== */

.xxv-ticket-grid .xxv-ticket-feature-date{
  display:flex!important;
  align-items:baseline!important;
  flex-wrap:wrap!important;
  gap:7px!important;
  margin:0 26px 14px!important;
  color:var(--xxv-red)!important;
  line-height:1.2!important;
}

.xxv-ticket-feature-date__day{
  font-size:1.18rem!important;
  font-weight:900!important;
  letter-spacing:.005em!important;
}

.xxv-ticket-feature-date__time{
  font-size:1.04rem!important;
  font-weight:800!important;
}

/* La vecchia data generata dall'hook Shop Core non serve nel catalogo. */
.xxv-ticket-grid .xxv-ticket-loop-date{
  display:none!important;
}

/* Il catalogo Biglietti continua a non mostrare informazioni economiche. */
.xxv-ticket-grid .wc-block-components-product-price,
.xxv-ticket-grid .wp-block-woocommerce-product-price,
.xxv-ticket-grid .price{
  display:none!important;
}

@media (max-width:600px){
  .xxv-ticket-grid .xxv-ticket-feature-date{
    margin-left:21px!important;
    margin-right:21px!important;
  }

  .xxv-ticket-feature-date__day{
    font-size:1.08rem!important;
  }

  .xxv-ticket-feature-date__time{
    font-size:.98rem!important;
  }
}

/* ===== Scheda singola Biglietto v1.3.0 ===== */

.xxv-single-ticket .xxv-product-main{
  align-items:flex-start!important;
}

.xxv-single-ticket .xxv-product-main > .wp-block-column:first-child{
  position:sticky;
  top:110px;
}

.xxv-single-ticket .wp-block-post-title{
  margin-bottom:18px!important;
}

/* Nasconde il generico range di prezzo del prodotto variabile.
 * Il prezzo effettivo viene mostrato da WooCommerce dopo la scelta del settore.
 */
.xxv-single-ticket .wp-block-woocommerce-product-price{
  display:none!important;
}

/* Evita duplicazione con il box inline generato da Shop Core. */
.xxv-single-ticket .xxv-ticket-details{
  display:none!important;
}

.xxv-event-summary{
  margin:0 0 24px;
  padding:0 0 22px;
  border-bottom:1px solid var(--xxv-line);
}

.xxv-event-primary{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:9px;
  margin-bottom:6px;
  color:var(--xxv-red);
}

.xxv-event-date{
  font-size:1.55rem;
  line-height:1.1;
  font-weight:950;
  letter-spacing:-.015em;
}

.xxv-event-time{
  font-size:1.08rem;
  font-weight:850;
}

.xxv-event-venue{
  margin:0 0 14px;
  color:var(--xxv-muted);
  font-size:1rem;
  font-weight:650;
}

.xxv-event-status{
  display:inline-flex;
  align-items:center;
  width:auto;
  padding:7px 11px;
  margin-bottom:12px;
  border-radius:999px;
  font-size:.78rem;
  line-height:1;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.xxv-event-status-open{
  color:#13683D;
  background:#EAF7F0;
}
.xxv-event-status-scheduled,
.xxv-event-status-not_available{
  color:#795500;
  background:#FFF4CF;
}
.xxv-event-status-closed{
  color:#666;
  background:#F0F0F0;
}
.xxv-event-status-sold_out{
  color:var(--xxv-red);
  background:#FBEAEC;
}

.xxv-event-extra{
  margin:0 0 13px;
  color:var(--xxv-muted);
  font-size:.9rem;
}

.xxv-event-rules{
  display:grid;
  gap:7px;
  margin-top:4px;
  color:#383838;
  font-size:.93rem;
  line-height:1.45;
}

/* Immagine evento */
.xxv-single-ticket .wp-block-woocommerce-product-image-gallery{
  overflow:hidden;
  border:1px solid var(--xxv-line);
  border-radius:12px;
  background:#fff;
}

.xxv-single-ticket .wp-block-woocommerce-product-image-gallery img{
  width:100%;
  height:auto;
  object-fit:cover;
}

/* Form variazioni / settore */
.xxv-single-ticket form.variations_form{
  margin-top:8px!important;
}

.xxv-single-ticket table.variations{
  width:100%!important;
  margin:0 0 18px!important;
  border:0!important;
}

.xxv-single-ticket table.variations th,
.xxv-single-ticket table.variations td{
  display:block!important;
  width:100%!important;
  padding:0!important;
  text-align:left!important;
  border:0!important;
}

.xxv-single-ticket table.variations th{
  margin-bottom:7px!important;
}

.xxv-single-ticket table.variations label{
  color:var(--xxv-ink);
  font-size:.92rem;
  font-weight:900;
}

.xxv-single-ticket table.variations select{
  width:100%!important;
  min-height:48px!important;
  padding:0 13px!important;
  background:#fff!important;
  border:1px solid #CFCFCF!important;
  border-radius:7px!important;
}

.xxv-single-ticket .reset_variations{
  display:inline-block;
  margin-top:8px;
  font-size:.84rem;
}

/* Prezzo del settore selezionato */
.xxv-single-ticket .woocommerce-variation-price{
  margin:4px 0 16px!important;
}

.xxv-single-ticket .woocommerce-variation-price .price{
  color:var(--xxv-red)!important;
  font-size:1.45rem!important;
  font-weight:950!important;
}

/* Opzione pullman */
.xxv-single-ticket .xxv-ticket-bus-option{
  margin:18px 0!important;
  padding:15px 16px!important;
  border:1px solid #F2CF69!important;
  border-left:5px solid var(--xxv-yellow)!important;
  border-radius:8px!important;
  background:#FFF9E8!important;
}

.xxv-single-ticket .xxv-ticket-bus-option label{
  gap:10px!important;
}

/* Quantità + CTA */
.xxv-single-ticket .single_variation_wrap .woocommerce-variation-add-to-cart,
.xxv-single-ticket form.cart:not(.variations_form){
  display:flex!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  align-items:stretch!important;
}

.xxv-single-ticket .quantity .qty{
  min-height:48px!important;
  width:76px!important;
  text-align:center;
}

.xxv-single-ticket .single_add_to_cart_button{
  min-height:48px!important;
  padding-inline:22px!important;
  flex:1 1 220px;
}

/* Metadati meno invasivi */
.xxv-single-ticket .wp-block-woocommerce-product-meta{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--xxv-line);
  color:var(--xxv-muted);
  font-size:.85rem;
}

/* Descrizione/dettagli */
.xxv-single-ticket .wp-block-woocommerce-product-details{
  margin-top:44px!important;
}

@media (max-width:900px){
  .xxv-single-ticket .xxv-product-main > .wp-block-column:first-child{
    position:static!important;
  }
}

@media (max-width:781px){
  .xxv-single-ticket .xxv-product-main{
    gap:26px!important;
  }

  .xxv-event-date{
    font-size:1.35rem;
  }

  .xxv-event-time{
    font-size:1rem;
  }

  .xxv-event-rules{
    font-size:.9rem;
  }
}

/* ===== Merchandising v1.4.0 ===== */

.xxv-merch-catalog{
  background:#FFFFFF;
}

.xxv-merch-catalog-head{
  max-width:820px!important;
  margin-left:0!important;
  margin-bottom:34px!important;
}

.xxv-merch-catalog-head h1{
  margin:.12em 0 .28em!important;
  font-size:clamp(2.25rem,5vw,4rem)!important;
  letter-spacing:-.035em;
}

.xxv-merch-catalog-intro{
  margin:0!important;
  max-width:760px;
  color:var(--xxv-muted);
  font-size:1.05rem;
  line-height:1.62;
}

/* Card prodotto */
.xxv-merch-grid .wc-block-product{
  padding:0!important;
  border:0!important;
  background:transparent!important;
}

.xxv-merch-card{
  height:100%;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden;
  background:#FFFFFF!important;
  border:1px solid var(--xxv-line)!important;
  border-top:5px solid var(--xxv-red)!important;
  border-radius:10px!important;
  box-shadow:0 8px 25px rgba(0,0,0,.045);
  transition:transform .18s ease,box-shadow .18s ease;
}

.xxv-merch-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(0,0,0,.075);
}

.xxv-merch-image{
  margin:0!important;
  padding:0!important;
  width:100%!important;
  background:var(--xxv-soft);
}

.xxv-merch-image img{
  display:block!important;
  width:100%!important;
  aspect-ratio:1 / 1!important;
  height:auto!important;
  object-fit:cover!important;
  object-position:center!important;
  border-radius:0!important;
}

.xxv-merch-card-body{
  flex:1 1 auto;
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  padding:22px 22px 23px!important;
  box-sizing:border-box;
}

.xxv-merch-title{
  width:100%;
  margin:0 0 10px!important;
  font-size:1.22rem!important;
  line-height:1.22!important;
  letter-spacing:-.015em;
}

.xxv-merch-title a{
  color:var(--xxv-ink)!important;
  text-decoration:none!important;
}

.xxv-merch-title a:hover{
  color:var(--xxv-red)!important;
}

.xxv-merch-price{
  margin:0 0 10px!important;
  font-size:1.12rem!important;
}

.xxv-merch-price del{
  color:var(--xxv-muted)!important;
  opacity:.55!important;
}

.xxv-merch-price ins{
  color:var(--xxv-red)!important;
  text-decoration:none!important;
  font-weight:950!important;
}

/* Badge visibile esclusivamente al socio */
.xxv-member-saving{
  display:inline-flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin:0 0 16px;
  padding:7px 10px;
  border-radius:6px;
  background:#FFF4CF;
  color:var(--xxv-ink);
  font-size:.78rem;
  line-height:1.15;
}

.xxv-member-saving__label{
  color:var(--xxv-red);
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.035em;
}

.xxv-member-saving__value{
  font-weight:850;
}

.xxv-merch-action{
  margin-top:auto!important;
}

.xxv-merch-action .wp-block-button__link,
.xxv-merch-action .wc-block-components-product-button__button{
  min-height:42px!important;
  padding:10px 16px!important;
  font-size:.9rem!important;
}

.xxv-merch-pagination{
  margin-top:34px!important;
}

/* ===== Singolo Gadget ===== */

.xxv-single-gadget .xxv-product-main{
  align-items:flex-start!important;
}

.xxv-single-gadget .xxv-product-main > .wp-block-column:first-child{
  position:sticky;
  top:110px;
}

.xxv-single-gadget .wp-block-post-title{
  margin-bottom:12px!important;
}

.xxv-single-gadget .wp-block-woocommerce-product-price{
  margin-bottom:10px!important;
}

.xxv-single-gadget .wp-block-woocommerce-product-price del{
  opacity:.5!important;
}

.xxv-single-gadget .wp-block-woocommerce-product-price ins{
  color:var(--xxv-red)!important;
  text-decoration:none!important;
}

.xxv-single-gadget .xxv-member-saving{
  margin-bottom:20px!important;
}

.xxv-single-gadget .wp-block-post-excerpt{
  color:#444;
  line-height:1.62;
}

.xxv-single-gadget .wp-block-woocommerce-product-image-gallery{
  overflow:hidden;
  border:1px solid var(--xxv-line);
  border-radius:12px;
  background:#fff;
}

.xxv-single-gadget .variations_form table.variations{
  width:100%!important;
  margin-bottom:18px!important;
}

.xxv-single-gadget .variations_form select{
  min-height:48px!important;
  width:100%!important;
  padding-inline:13px!important;
}

.xxv-single-gadget .woocommerce-variation-price .price{
  color:var(--xxv-red)!important;
  font-size:1.35rem!important;
  font-weight:950!important;
}

.xxv-single-gadget form.cart{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  align-items:stretch!important;
}

.xxv-single-gadget .quantity .qty{
  min-height:48px!important;
  width:76px!important;
  text-align:center;
}

.xxv-single-gadget .single_add_to_cart_button{
  min-height:48px!important;
  padding-inline:22px!important;
  flex:1 1 220px;
}

.xxv-single-gadget .wp-block-woocommerce-product-meta{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--xxv-line);
  color:var(--xxv-muted);
  font-size:.85rem;
}

@media (max-width:900px){
  .xxv-single-gadget .xxv-product-main > .wp-block-column:first-child{
    position:static!important;
  }
}

@media (max-width:781px){
  .xxv-merch-card-body{
    padding:20px!important;
  }

  .xxv-merch-title{
    font-size:1.16rem!important;
  }
}

/* ===== Rifiniture prezzo / metadati / recensioni v1.4.1 ===== */

/*
 * Più respiro tra prezzo e diciture riservate ai soci.
 * Copre sia il badge del tema sia le eventuali diciture generate da Shop Core.
 */
.xxv-merch-grid .xxv-merch-price{
  margin-bottom:16px!important;
}

.xxv-merch-grid .xxv-member-saving,
.xxv-merch-grid .xxv-member-price-label,
.xxv-merch-grid .xxv-member-only-price,
.xxv-merch-grid .xxv-price-note{
  margin-top:2px!important;
}

.xxv-single-gadget .wp-block-woocommerce-product-price{
  margin-bottom:16px!important;
}

.xxv-single-gadget .xxv-member-saving,
.xxv-single-gadget .xxv-member-price-label,
.xxv-single-gadget .xxv-member-only-price,
.xxv-single-gadget .xxv-price-note{
  margin-top:2px!important;
  margin-bottom:20px!important;
}

/* Fallback generico se Shop Core usa testo inline subito dopo il prezzo. */
.tax-product_cat.term-gadget .price + *,
.xxv-single-gadget .price + *{
  margin-top:10px!important;
}

/* La categoria non viene mostrata nella singola scheda prodotto. */
.xxv-single-gadget .posted_in,
.xxv-single-ticket .posted_in,
.xxv-single-gadget .taxonomy-product_cat,
.xxv-single-ticket .taxonomy-product_cat{
  display:none!important;
}

/* Le recensioni non fanno parte dell'esperienza dello shop. */
.xxv-single-gadget .woocommerce-Reviews,
.xxv-single-ticket .woocommerce-Reviews,
.xxv-single-gadget #tab-title-reviews,
.xxv-single-ticket #tab-title-reviews,
.xxv-single-gadget .woocommerce-product-rating,
.xxv-single-ticket .woocommerce-product-rating{
  display:none!important;
}

/* ===== Correzioni Merchandising / Recensioni v1.4.2 ===== */

/*
 * La dicitura generata da Shop Core fa parte dello stesso price HTML:
 * la rendiamo un blocco separato e le diamo spazio reale.
 */
.xxv-member-benefit{
  display:block!important;
  margin-top:11px!important;
  line-height:1.35!important;
  color:var(--xxv-red)!important;
  font-size:.82rem!important;
  font-weight:850!important;
}

/* Catalogo Merchandising */
.xxv-merch-grid .xxv-member-benefit{
  margin-top:10px!important;
}

/* Singolo prodotto */
.xxv-single-gadget .xxv-member-benefit{
  margin-top:12px!important;
}

/*
 * Nessun tab Recensioni: il blocco Product Details è stato rimosso
 * dal template. Questi selettori sono solo una protezione aggiuntiva.
 */
.xxv-single-gadget .woocommerce-Reviews,
.xxv-single-ticket .woocommerce-Reviews,
.xxv-single-gadget #reviews,
.xxv-single-ticket #reviews,
.xxv-single-gadget #tab-title-reviews,
.xxv-single-ticket #tab-title-reviews,
.xxv-single-gadget .woocommerce-tabs,
.xxv-single-ticket .woocommerce-tabs{
  display:none!important;
}

/* Descrizione semplice, senza tab. */
.xxv-product-description{
  margin-top:42px!important;
  padding-top:26px!important;
  border-top:1px solid var(--xxv-line);
}

.xxv-product-description:empty{
  display:none!important;
}

/* Compatibilità visiva con la nuova categoria Merchandising. */
.tax-product_cat.term-merchandising .xxv-merch-card,
.tax-product_cat.term-gadget .xxv-merch-card{
  background:#FFFFFF;
}

/* ===== Checkout + Area personale v1.5.0 ===== */

/* ---------- CHECKOUT ---------- */
.xxv-checkout-page .wp-block-post-title,
.xxv-cart-page .wp-block-post-title,
.xxv-account-page .wp-block-post-title{
  margin-bottom:28px!important;
}

.xxv-checkout-page .wc-block-checkout{
  gap:34px!important;
}

.xxv-checkout-page .wc-block-components-main{
  max-width:none!important;
}

.xxv-checkout-page .wc-block-components-checkout-step{
  margin-bottom:20px!important;
  padding:22px 22px 20px!important;
  background:#FFFFFF!important;
  border:1px solid var(--xxv-line)!important;
  border-radius:10px!important;
}

.xxv-checkout-page .wc-block-components-checkout-step__heading{
  margin-bottom:16px!important;
}

.xxv-checkout-page .wc-block-components-checkout-step__title{
  color:var(--xxv-ink)!important;
  font-size:1.12rem!important;
  font-weight:900!important;
}

.xxv-checkout-page .wc-block-components-checkout-step__description{
  color:var(--xxv-muted)!important;
  font-size:.9rem!important;
}

.xxv-checkout-page .wc-block-components-text-input input,
.xxv-checkout-page .wc-block-components-combobox .wc-block-components-combobox-control input,
.xxv-checkout-page input[type="text"],
.xxv-checkout-page input[type="email"],
.xxv-checkout-page input[type="tel"],
.xxv-checkout-page select,
.xxv-checkout-page textarea{
  min-height:48px!important;
  background:#FFFFFF!important;
  border:1px solid #CECECE!important;
  border-radius:7px!important;
}

.xxv-checkout-page .wc-block-components-sidebar{
  position:sticky;
  top:104px;
  align-self:flex-start;
  padding:22px!important;
  background:var(--xxv-soft)!important;
  border:1px solid var(--xxv-line)!important;
  border-radius:10px!important;
}

.xxv-checkout-page .wc-block-components-order-summary{
  margin-bottom:8px!important;
}

.xxv-checkout-page .wc-block-components-totals-wrapper{
  border-color:#DCDCDC!important;
}

.xxv-checkout-page .wc-block-components-radio-control-accordion-option{
  margin-bottom:10px!important;
  border:1px solid var(--xxv-line)!important;
  border-radius:8px!important;
  overflow:hidden;
}

.xxv-checkout-page .wc-block-components-radio-control__option{
  padding:16px!important;
}

.xxv-checkout-page .wc-block-components-checkbox{
  line-height:1.45!important;
}

.xxv-checkout-page .wc-block-components-checkbox a{
  color:var(--xxv-red)!important;
  font-weight:850!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}

.xxv-checkout-page .wc-block-components-checkout-place-order-button{
  min-height:52px!important;
  font-size:1rem!important;
  font-weight:900!important;
}

/* ---------- CARRELLO ---------- */
.xxv-cart-page .wc-block-cart{
  gap:32px!important;
}

.xxv-cart-page .wc-block-components-sidebar{
  position:sticky;
  top:104px;
  align-self:flex-start;
  padding:22px!important;
  background:var(--xxv-soft)!important;
  border:1px solid var(--xxv-line)!important;
  border-radius:10px!important;
}

.xxv-cart-page .wc-block-components-product-name{
  color:var(--xxv-ink)!important;
  font-weight:850!important;
}

/* ---------- AREA PERSONALE ---------- */
.xxv-account-page .woocommerce{
  display:grid;
  grid-template-columns:minmax(190px,240px) minmax(0,1fr);
  gap:34px;
  align-items:start;
}

.xxv-account-page .woocommerce-MyAccount-navigation{
  width:100%!important;
  float:none!important;
  margin:0!important;
  position:sticky;
  top:104px;
}

.xxv-account-page .woocommerce-MyAccount-navigation ul{
  margin:0!important;
  padding:8px!important;
  list-style:none!important;
  background:var(--xxv-soft);
  border:1px solid var(--xxv-line);
  border-radius:10px;
}

.xxv-account-page .woocommerce-MyAccount-navigation a{
  display:block;
  padding:11px 13px!important;
  color:var(--xxv-ink)!important;
  text-decoration:none!important;
  border-radius:7px;
  font-size:.92rem;
  font-weight:800;
}

.xxv-account-page .woocommerce-MyAccount-navigation li.is-active a{
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
}

.xxv-account-page .woocommerce-MyAccount-navigation a:hover{
  background:#FFFFFF;
  color:var(--xxv-red)!important;
}

.xxv-account-page .woocommerce-MyAccount-content{
  width:100%!important;
  float:none!important;
  margin:0!important;
  min-width:0;
}

.xxv-account-page .xxv-shop-profile-card,
.xxv-account-page .xxv-profile-card{
  margin-bottom:24px!important;
  padding:22px!important;
  background:#FFFFFF!important;
  border:1px solid var(--xxv-line)!important;
  border-left:5px solid var(--xxv-yellow)!important;
  border-radius:10px!important;
  box-shadow:0 6px 20px rgba(0,0,0,.035);
}

.xxv-account-page .woocommerce-orders-table{
  width:100%!important;
  border-collapse:separate!important;
  border-spacing:0!important;
  overflow:hidden;
  background:#FFFFFF;
  border:1px solid var(--xxv-line);
  border-radius:10px;
}

.xxv-account-page .woocommerce-orders-table th{
  padding:13px 14px!important;
  background:var(--xxv-soft)!important;
  color:var(--xxv-ink)!important;
  font-size:.82rem!important;
  font-weight:900!important;
  text-transform:uppercase;
  letter-spacing:.025em;
  border-bottom:1px solid var(--xxv-line)!important;
}

.xxv-account-page .woocommerce-orders-table td{
  padding:14px!important;
  border-bottom:1px solid #EEEEEE!important;
  vertical-align:middle!important;
}

.xxv-account-page .woocommerce-orders-table tr:last-child td{
  border-bottom:0!important;
}

.xxv-account-page .woocommerce-orders-table .button{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-height:38px!important;
  padding:8px 12px!important;
  font-size:.82rem!important;
}

.xxv-account-page .woocommerce-order-details,
.xxv-account-page .woocommerce-customer-details{
  margin-top:28px!important;
}

.xxv-account-page .woocommerce-table--order-details{
  width:100%;
  border:1px solid var(--xxv-line)!important;
  border-radius:10px;
  overflow:hidden;
}

.xxv-account-page .woocommerce-table--order-details th{
  background:var(--xxv-soft)!important;
}

.xxv-account-page .woocommerce-table--order-details th,
.xxv-account-page .woocommerce-table--order-details td{
  padding:13px 14px!important;
}

.xxv-account-page .xxv-booking-status,
.xxv-account-page .xxv-order-status-card{
  margin:0 0 24px!important;
  padding:22px!important;
  background:#FFFFFF!important;
  border:1px solid var(--xxv-line)!important;
  border-top:5px solid var(--xxv-red)!important;
  border-radius:10px!important;
}

.xxv-account-page form.woocommerce-EditAccountForm,
.xxv-account-page form.woocommerce-form-login,
.xxv-account-page form.woocommerce-form-register{
  padding:24px!important;
  background:#FFFFFF;
  border:1px solid var(--xxv-line);
  border-radius:10px;
}

.xxv-account-page .woocommerce-Input,
.xxv-account-page input[type="text"],
.xxv-account-page input[type="email"],
.xxv-account-page input[type="password"],
.xxv-account-page input[type="tel"],
.xxv-account-page select{
  min-height:46px!important;
  border:1px solid #CECECE!important;
  border-radius:7px!important;
}

/* ---------- MOBILE ---------- */
@media (max-width:900px){
  .xxv-checkout-page .wc-block-components-sidebar,
  .xxv-cart-page .wc-block-components-sidebar{
    position:static!important;
  }

  .xxv-account-page .woocommerce{
    grid-template-columns:1fr!important;
    gap:22px!important;
  }

  .xxv-account-page .woocommerce-MyAccount-navigation{
    position:static!important;
  }

  .xxv-account-page .woocommerce-MyAccount-navigation ul{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:6px!important;
    padding:7px!important;
  }

  .xxv-account-page .woocommerce-MyAccount-navigation li{
    flex:1 1 auto;
  }

  .xxv-account-page .woocommerce-MyAccount-navigation a{
    text-align:center;
    white-space:nowrap;
  }
}

@media (max-width:700px){
  .xxv-checkout-page .wc-block-components-checkout-step{
    padding:18px 16px!important;
  }

  .xxv-account-page .woocommerce-orders-table thead{
    display:none!important;
  }

  .xxv-account-page .woocommerce-orders-table,
  .xxv-account-page .woocommerce-orders-table tbody,
  .xxv-account-page .woocommerce-orders-table tr,
  .xxv-account-page .woocommerce-orders-table td{
    display:block!important;
    width:100%!important;
    box-sizing:border-box;
  }

  .xxv-account-page .woocommerce-orders-table tr{
    padding:12px 14px!important;
    border-bottom:1px solid var(--xxv-line)!important;
  }

  .xxv-account-page .woocommerce-orders-table td{
    padding:7px 0!important;
    border:0!important;
  }
}

/* ===== Rifiniture pubbliche v1.6.0 ===== */

/* Accesso / registrazione quando il prezzo non è visibile */
.xxv-price-login{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:9px 13px;
  margin-top:4px;
  background:var(--xxv-red);
  color:#FFFFFF!important;
  border-radius:6px;
  text-decoration:none!important;
  font-size:.86rem;
  font-weight:900!important;
  line-height:1.2;
}

.xxv-price-login:hover{
  filter:brightness(.92);
}

.xxv-price-locked{
  display:inline-flex!important;
  align-items:center;
  padding:8px 11px;
  margin-top:4px;
  color:#795500!important;
  background:#FFF4CF;
  border-radius:6px;
  font-size:.84rem;
  font-weight:850;
  line-height:1.25;
}

/* Messaggi cataloghi vuoti */
.xxv-ticket-grid .wp-block-query-no-results,
.xxv-merch-grid .wp-block-query-no-results{
  grid-column:1/-1;
  width:100%;
}

.xxv-ticket-grid .wp-block-query-no-results p,
.xxv-merch-grid .wp-block-query-no-results p{
  max-width:700px;
  margin:16px auto!important;
  padding:30px 26px!important;
  color:var(--xxv-muted);
  background:var(--xxv-soft);
  border:1px solid var(--xxv-line);
  border-radius:10px;
  font-size:1rem;
  line-height:1.55;
}

/* Footer */
.xxv-footer-inner{
  gap:18px 28px;
}

.xxv-footer-inner > p{
  margin:0!important;
}

.xxv-footer-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  font-size:.84rem;
}

.xxv-footer-links a{
  color:var(--xxv-ink)!important;
  font-weight:700!important;
  text-decoration:none!important;
}

.xxv-footer-links a:hover{
  color:var(--xxv-red)!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}

.xxv-footer-dot{
  color:#A9A9A9;
  font-size:.72rem;
}

/* Stati partite: "Prossimamente" e apertura programmata condividono il giallo */
.xxv-ticket-status-scheduled,
.xxv-event-status-scheduled{
  color:#795500!important;
  background:#FFF4CF!important;
}

@media (max-width:700px){
  .xxv-footer-inner{
    align-items:flex-start!important;
  }

  .xxv-footer-links{
    width:100%;
    justify-content:flex-start;
    gap:6px 8px;
  }
}

/* ===== WhatsApp button v1.6.1 ===== */
.xxv-whatsapp-button .wp-block-button__link{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:9px;
}
.xxv-whatsapp-button .wp-block-button__link::before{
  content:"";
  display:inline-block;
  width:20px;
  height:20px;
  flex:0 0 20px;
  background-color:currentColor;
  -webkit-mask:url("../images/whatsapp.svg") center / contain no-repeat;
  mask:url("../images/whatsapp.svg") center / contain no-repeat;
}

/* ===== Google Maps button v1.6.2 ===== */
.xxv-google-maps-button .wp-block-button__link{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:9px;
}

.xxv-google-maps-button .wp-block-button__link::before{
  content:"";
  display:inline-block;
  width:20px;
  height:20px;
  flex:0 0 20px;
  background-color:currentColor;
  -webkit-mask:url("../images/google-maps.svg") center / contain no-repeat;
  mask:url("../images/google-maps.svg") center / contain no-repeat;
}

/* ===== Account guest desktop fix v1.6.3 ===== */

/*
 * Quando l'utente non è autenticato, WooCommerce mostra #customer_login.
 * Non deve ereditare la griglia a due colonne prevista per
 * navigazione + contenuto dell'Area personale autenticata.
 */
.xxv-account-page.xxv-account-guest .woocommerce{
  display:block!important;
}

.xxv-account-page.xxv-account-guest #customer_login{
  display:grid!important;
  grid-template-columns:minmax(0, 0.82fr) minmax(0, 1.18fr);
  gap:32px;
  width:100%;
  max-width:1040px;
  margin:0;
  align-items:start;
}

.xxv-account-page.xxv-account-guest #customer_login .u-column1,
.xxv-account-page.xxv-account-guest #customer_login .u-column2{
  width:auto!important;
  float:none!important;
  margin:0!important;
  min-width:0;
}

.xxv-account-page.xxv-account-guest #customer_login h2{
  margin:0 0 14px!important;
  font-size:1.35rem;
  line-height:1.2;
}

.xxv-account-page.xxv-account-guest #customer_login form.woocommerce-form-login,
.xxv-account-page.xxv-account-guest #customer_login form.woocommerce-form-register{
  width:100%!important;
  box-sizing:border-box;
  margin:0!important;
  padding:24px!important;
}

.xxv-account-page.xxv-account-guest #customer_login .form-row{
  width:100%!important;
  float:none!important;
  box-sizing:border-box;
}

.xxv-account-page.xxv-account-guest #customer_login input[type="text"],
.xxv-account-page.xxv-account-guest #customer_login input[type="email"],
.xxv-account-page.xxv-account-guest #customer_login input[type="password"],
.xxv-account-page.xxv-account-guest #customer_login input[type="tel"],
.xxv-account-page.xxv-account-guest #customer_login select{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box;
}

.xxv-account-page.xxv-account-guest #customer_login .woocommerce-form-login__rememberme{
  display:flex;
  align-items:center;
  gap:8px;
  margin:4px 0 14px;
}

.xxv-account-page.xxv-account-guest #customer_login .woocommerce-form-login__rememberme input{
  width:auto!important;
  min-height:auto!important;
  margin:0!important;
}

.xxv-account-page.xxv-account-guest #customer_login .woocommerce-button{
  min-width:120px;
}

/* Tablet e smartphone: torna a una sola colonna */
@media (max-width:900px){
  .xxv-account-page.xxv-account-guest #customer_login{
    grid-template-columns:1fr!important;
    gap:24px!important;
    max-width:680px;
  }
}

/* ===== Account guest definitive desktop layout v1.6.4 ===== */

/* Forza la posizione delle due colonne WooCommerce su desktop */
@media (min-width:901px){

  .xxv-account-page.xxv-account-guest #customer_login{
    display:grid!important;
    grid-template-columns:minmax(320px, .88fr) minmax(420px, 1.12fr)!important;
    grid-template-rows:auto!important;
    gap:34px!important;
    align-items:start!important;
    max-width:1080px!important;
    width:100%!important;
    margin:0 auto!important;
  }

  .xxv-account-page.xxv-account-guest #customer_login > .u-column1,
  .xxv-account-page.xxv-account-guest #customer_login > .col-1{
    grid-column:1!important;
    grid-row:1!important;
    order:1!important;
    position:static!important;
    width:100%!important;
    max-width:none!important;
    float:none!important;
    clear:none!important;
    margin:0!important;
  }

  .xxv-account-page.xxv-account-guest #customer_login > .u-column2,
  .xxv-account-page.xxv-account-guest #customer_login > .col-2{
    grid-column:2!important;
    grid-row:1!important;
    order:2!important;
    position:static!important;
    width:100%!important;
    max-width:none!important;
    float:none!important;
    clear:none!important;
    margin:0!important;
  }

  .xxv-account-page.xxv-account-guest #customer_login > .u-column1 h2,
  .xxv-account-page.xxv-account-guest #customer_login > .u-column2 h2{
    margin-top:0!important;
  }

  .xxv-account-page.xxv-account-guest #customer_login form{
    width:100%!important;
    max-width:none!important;
  }
}

/* Su tablet e smartphone resta una sola colonna, nell'ordine Accedi -> Registrati */
@media (max-width:900px){
  .xxv-account-page.xxv-account-guest #customer_login{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:24px!important;
    max-width:680px!important;
    margin:0 auto!important;
  }

  .xxv-account-page.xxv-account-guest #customer_login > .u-column1,
  .xxv-account-page.xxv-account-guest #customer_login > .col-1{
    grid-column:1!important;
    grid-row:1!important;
    order:1!important;
    width:100%!important;
  }

  .xxv-account-page.xxv-account-guest #customer_login > .u-column2,
  .xxv-account-page.xxv-account-guest #customer_login > .col-2{
    grid-column:1!important;
    grid-row:2!important;
    order:2!important;
    width:100%!important;
  }
}

/* ===== Taglie merchandising v1.7.0 ===== */

/* Il select WooCommerce resta nel DOM per la logica delle variazioni,
   ma viene nascosto visivamente quando i pulsanti sono disponibili. */
.xxv-single-gadget .variations select.xxv-size-select-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.xxv-single-gadget .variations .label{
  vertical-align:top!important;
}

.xxv-single-gadget .variations .label label{
  display:inline-block;
  padding-top:10px;
  font-weight:850;
}

.xxv-size-swatches{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:2px 0 4px;
}

.xxv-size-swatch{
  appearance:none;
  -webkit-appearance:none;
  min-width:48px;
  min-height:44px;
  padding:8px 13px;
  border:1.5px solid #D9D9D9;
  border-radius:6px;
  background:#FFFFFF;
  color:var(--xxv-ink);
  font:inherit;
  font-weight:850;
  line-height:1;
  text-align:center;
  cursor:pointer;
  transition:
    border-color .16s ease,
    background-color .16s ease,
    color .16s ease,
    transform .16s ease;
}

.xxv-size-swatch:hover:not(:disabled){
  border-color:var(--xxv-red);
  transform:translateY(-1px);
}

.xxv-size-swatch.is-selected{
  border-color:var(--xxv-red);
  background:var(--xxv-red);
  color:#FFFFFF;
}

.xxv-size-swatch:focus-visible{
  outline:3px solid var(--xxv-yellow);
  outline-offset:2px;
}

.xxv-size-swatch:disabled,
.xxv-size-swatch.is-disabled{
  opacity:.38;
  cursor:not-allowed;
  text-decoration:line-through;
  transform:none;
}

/* Migliora la disposizione della tabella variazioni nella scheda prodotto. */
.xxv-single-gadget form.variations_form table.variations{
  width:100%;
  margin:18px 0 10px;
}

.xxv-single-gadget form.variations_form table.variations th,
.xxv-single-gadget form.variations_form table.variations td{
  padding-top:7px;
  padding-bottom:7px;
}

.xxv-single-gadget form.variations_form .reset_variations{
  display:inline-block;
  margin-top:8px;
  font-size:.84rem;
  font-weight:700;
  color:var(--xxv-red);
}

/* Mobile: pulsanti ben toccabili ma compatti. */
@media (max-width:600px){
  .xxv-size-swatches{
    gap:8px;
  }

  .xxv-size-swatch{
    min-width:46px;
    min-height:44px;
    padding:8px 11px;
  }
}

/* ===== Catalogo Biglietti mobile v1.7.1 ===== */
@media (max-width:700px){

  .xxv-ticket-grid .wp-block-post-template,
  .xxv-ticket-grid ul.wp-block-post-template,
  body.tax-product_cat.term-biglietti .wp-block-post-template,
  body.tax-product_cat.term-biglietti ul.wp-block-post-template{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:22px!important;
  }

  .xxv-ticket-grid .wp-block-post,
  body.tax-product_cat.term-biglietti .wp-block-post-template > li{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
  }

  .xxv-ticket-grid .wp-block-post-featured-image,
  body.tax-product_cat.term-biglietti .wp-block-post-featured-image{
    width:100%!important;
  }

  .xxv-ticket-grid .wp-block-post-featured-image img,
  body.tax-product_cat.term-biglietti .wp-block-post-featured-image img{
    width:100%!important;
    height:auto!important;
    aspect-ratio:1 / 1;
    object-fit:cover;
  }

  .xxv-ticket-grid .wp-block-post-title,
  body.tax-product_cat.term-biglietti .wp-block-post-title{
    font-size:1.7rem!important;
    line-height:1.08!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    hyphens:none!important;
  }

  .xxv-ticket-grid .xxv-event-date,
  body.tax-product_cat.term-biglietti .xxv-event-date{
    font-size:1.12rem!important;
    line-height:1.35!important;
  }

  .xxv-ticket-grid .wp-block-button,
  .xxv-ticket-grid .wp-block-button__link,
  body.tax-product_cat.term-biglietti .wp-block-button,
  body.tax-product_cat.term-biglietti .wp-block-button__link{
    width:100%!important;
  }

  .xxv-ticket-grid .wp-block-button__link,
  body.tax-product_cat.term-biglietti .wp-block-button__link{
    box-sizing:border-box!important;
    text-align:center!important;
    justify-content:center!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
}

/* ===== WooCommerce Product Collection mobile v1.7.3 ===== */

/*
 * WooCommerce Product Collection usa:
 * ul.wc-block-product-template__responsive.columns-2
 * e non il vecchio .wp-block-post-template.
 *
 * Su smartphone Biglietti e Merchandising devono avere una sola card
 * per riga. Desktop e tablet restano invariati.
 */
@media (max-width:700px){

  body.tax-product_cat.term-biglietti
    ul.wc-block-product-template__responsive,
  body.tax-product_cat.term-merchandising
    ul.wc-block-product-template__responsive,
  .xxv-ticket-grid
    ul.wc-block-product-template__responsive,
  .xxv-merch-grid
    ul.wc-block-product-template__responsive,
  .xxv-ticket-grid
    .wp-block-woocommerce-product-template,
  .xxv-merch-grid
    .wp-block-woocommerce-product-template{
      display:grid!important;
      grid-template-columns:minmax(0, 1fr)!important;
      grid-auto-columns:minmax(0, 1fr)!important;
      gap:22px!important;
      width:100%!important;
  }

  body.tax-product_cat.term-biglietti
    ul.wc-block-product-template__responsive > li.wc-block-product,
  body.tax-product_cat.term-merchandising
    ul.wc-block-product-template__responsive > li.wc-block-product,
  .xxv-ticket-grid
    ul.wc-block-product-template__responsive > li.wc-block-product,
  .xxv-merch-grid
    ul.wc-block-product-template__responsive > li.wc-block-product{
      grid-column:1 / -1!important;
      width:100%!important;
      max-width:100%!important;
      min-width:0!important;
      box-sizing:border-box!important;
  }

  /* Biglietti: immagine quadrata e leggibile */
  body.tax-product_cat.term-biglietti
    .wc-block-product .xxv-ticket-image,
  .xxv-ticket-grid
    .wc-block-product .xxv-ticket-image{
      width:100%!important;
      max-width:none!important;
  }

  body.tax-product_cat.term-biglietti
    .wc-block-product .xxv-ticket-image img,
  .xxv-ticket-grid
    .wc-block-product .xxv-ticket-image img{
      display:block!important;
      width:100%!important;
      height:auto!important;
      aspect-ratio:1 / 1!important;
      object-fit:cover!important;
  }

  body.tax-product_cat.term-biglietti
    .xxv-ticket-title,
  .xxv-ticket-grid
    .xxv-ticket-title{
      font-size:1.7rem!important;
      line-height:1.1!important;
      word-break:normal!important;
      overflow-wrap:normal!important;
      hyphens:none!important;
  }

  body.tax-product_cat.term-biglietti
    .xxv-ticket-action,
  body.tax-product_cat.term-biglietti
    .xxv-ticket-action .wp-block-button__link,
  .xxv-ticket-grid
    .xxv-ticket-action,
  .xxv-ticket-grid
    .xxv-ticket-action .wp-block-button__link{
      width:100%!important;
      box-sizing:border-box!important;
  }

  body.tax-product_cat.term-biglietti
    .xxv-ticket-action .wp-block-button__link,
  .xxv-ticket-grid
    .xxv-ticket-action .wp-block-button__link{
      display:flex!important;
      align-items:center!important;
      justify-content:center!important;
      text-align:center!important;
  }
}

/* ===== Descrizione prodotto singola v1.7.4 ===== */

/*
 * La descrizione completa viene mostrata una sola volta,
 * subito dopo il prezzo / vantaggio socio e prima delle variazioni.
 */
.xxv-product-description--summary{
  margin-top:18px!important;
  margin-bottom:22px!important;
  max-width:none!important;
}

.xxv-product-description--summary > *:first-child{
  margin-top:0!important;
}

.xxv-product-description--summary > *:last-child{
  margin-bottom:0!important;
}

.xxv-product-description--summary p{
  margin-top:0;
  margin-bottom:0.9em;
  line-height:1.65;
}

.xxv-product-description--summary ul,
.xxv-product-description--summary ol{
  margin-top:0.6em;
  margin-bottom:1em;
  padding-left:1.35em;
}

.xxv-product-description--summary strong{
  font-weight:800;
}

/* Evita margini troppo ampi dei blocchi Gutenberg dentro la descrizione. */
.xxv-product-description--summary .wp-block-heading{
  margin-top:1.2em;
  margin-bottom:0.55em;
}

/* ===== Il mio account semplificato v1.7.5 ===== */

.xxv-account-page:not(.xxv-account-guest) .woocommerce{
  display:block!important;
}

.xxv-account-page:not(.xxv-account-guest) .woocommerce-MyAccount-navigation{
  display:none!important;
}

.xxv-account-page:not(.xxv-account-guest) .woocommerce-MyAccount-content{
  float:none!important;
  width:100%!important;
  max-width:820px!important;
  margin:0 auto!important;
  padding:0!important;
}

.xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm{
  width:100%!important;
  box-sizing:border-box;
  padding:28px!important;
  margin:0!important;
  background:#FFFFFF;
  border:1px solid var(--xxv-line);
  border-radius:10px;
}

.xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm .form-row{
  width:100%!important;
  float:none!important;
  box-sizing:border-box;
  margin-bottom:18px!important;
}

.xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm input[type="text"],
.xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm input[type="email"],
.xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm input[type="password"]{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box;
}

.xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm fieldset{
  margin:26px 0 20px!important;
  padding:22px!important;
  border:1px solid var(--xxv-line)!important;
  border-radius:8px;
}

.xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm fieldset legend{
  padding:0 8px;
  font-weight:850;
}

.xxv-account-logout{
  max-width:820px;
  margin:20px auto 0;
  text-align:right;
}

.xxv-account-logout__button{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  min-width:110px;
  padding:11px 22px!important;
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
  border:0!important;
  border-radius:6px!important;
  font-weight:850!important;
  text-decoration:none!important;
}

.xxv-account-logout__button:hover{
  filter:brightness(.92);
}

@media (max-width:700px){
  .xxv-account-page:not(.xxv-account-guest) .woocommerce-EditAccountForm{
    padding:20px!important;
  }

  .xxv-account-logout{
    text-align:left;
  }

  .xxv-account-logout__button{
    width:100%;
  }
}

/* ===== Radio checkout: ritiro e pagamento v1.7.6 ===== */

/*
 * WooCommerce posiziona il radio button sul lato sinistro dell'opzione.
 * La precedente regola del tema impostava padding uniforme a 16px,
 * riducendo lo spazio riservato al selettore e facendo sovrapporre
 * radio e testo. Ripristiniamo quindi una colonna sinistra dedicata.
 */
.xxv-checkout-page .wc-block-components-radio-control__option{
  position:relative!important;
  padding:16px 16px 16px 48px!important;
  min-height:52px;
  box-sizing:border-box;
}

/* Mantiene il selettore nella sua area senza ereditare dimensioni da
   eventuali regole generiche sui campi del checkout. */
.xxv-checkout-page
.wc-block-components-radio-control__option
input[type="radio"],
.xxv-checkout-page
.wc-block-components-radio-control__input{
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  min-height:18px!important;
  max-height:18px!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* Anche nei blocchi accordion di pagamento/ritiro il testo deve avere
   sempre spazio sufficiente a destra del radio. */
.xxv-checkout-page
.wc-block-components-radio-control-accordion-option
.wc-block-components-radio-control__option{
  padding-left:48px!important;
}

@media (max-width:700px){
  .xxv-checkout-page .wc-block-components-radio-control__option{
    padding:14px 14px 14px 46px!important;
  }

  .xxv-checkout-page
  .wc-block-components-radio-control-accordion-option
  .wc-block-components-radio-control__option{
    padding-left:46px!important;
  }
}

/* ===== Ordine ricevuto v1.7.7 ===== */

/* La pagina WooCommerce a blocchi tende a partire dal bordo viewport. */
body.woocommerce-order-received main{
  box-sizing:border-box;
  padding-left:clamp(20px, 4vw, 56px)!important;
  padding-right:clamp(20px, 4vw, 56px)!important;
  padding-bottom:48px!important;
}

/* Titolo meno invasivo e migliore respirazione iniziale. */
body.woocommerce-order-received main h1{
  line-height:1.05;
  margin-top:28px;
}

/* Stato della prenotazione */
body.woocommerce-order-received .xxv-order-progress{
  max-width:100%;
  margin:18px 0 26px;
  padding:20px 22px;
  border:1px solid var(--xxv-line);
  border-radius:10px;
  background:#FFFFFF;
  box-sizing:border-box;
}

body.woocommerce-order-received .xxv-order-progress h2{
  margin:0 0 14px!important;
}

body.woocommerce-order-received .xxv-order-progress-grid{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:14px;
}

body.woocommerce-order-received .xxv-progress-item{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px;
  padding:0;
}

body.woocommerce-order-received .xxv-progress-label{
  opacity:1;
  font-size:inherit;
  font-weight:400;
}

body.woocommerce-order-received .xxv-progress-value{
  font-weight:800;
}

body.woocommerce-order-received .xxv-order-progress-note{
  padding:9px 0;
  border-top:1px solid var(--xxv-line);
}

body.woocommerce-order-received .xxv-order-progress-note-label{
  font-weight:400;
}

body.woocommerce-order-received .xxv-order-progress-note strong{
  font-weight:800;
}

/* Nota pagamento in contanti */
body.woocommerce-order-received .xxv-cash-payment-notice{
  margin-top:18px!important;
  padding:14px 16px!important;
  border:1px solid rgba(142,0,28,.25);
  border-left:4px solid var(--xxv-red);
  border-radius:6px;
  background:#FFF5F6;
  color:var(--xxv-red)!important;
  font-weight:850!important;
  line-height:1.45;
}

/* Il riepilogo ordine non deve aderire ai bordi su schermi stretti. */
body.woocommerce-order-received table,
body.woocommerce-order-received .wc-block-order-confirmation-totals,
body.woocommerce-order-received .woocommerce-table{
  max-width:100%;
}

@media (max-width:700px){
  body.woocommerce-order-received main{
    padding-left:18px!important;
    padding-right:18px!important;
    padding-bottom:34px!important;
  }

  body.woocommerce-order-received main h1{
    font-size:2.15rem!important;
    margin-top:20px!important;
  }

  body.woocommerce-order-received .xxv-order-progress{
    padding:17px 16px;
  }
}

/* ===== Home senza "Disponibili ora" v1.7.8 ===== */

/*
 * Fallback per eventuali versioni della Home salvate nel Site Editor:
 * se il vecchio template è ancora presente nel database, nascondiamo
 * sia il titolo sia la Product Collection sottostante.
 */
body.home .xxv-section-heading,
body.home .xxv-section-heading + .wp-block-woocommerce-product-collection,
body.home .xxv-home-content > .wp-block-woocommerce-product-collection{
  display:none!important;
}

/* ===== Immagini riquadri Home v1.7.9 ===== */

body.home .xxv-choice-card{
  display:grid!important;
  grid-template-columns:minmax(0, 1fr) 150px;
  grid-template-areas:
    "kicker visual"
    "title  visual"
    "copy   visual"
    "button visual";
  column-gap:22px;
  align-items:start;
}

body.home .xxv-choice-card > .xxv-kicker{
  grid-area:kicker;
}

body.home .xxv-choice-card > h2{
  grid-area:title;
}

body.home .xxv-choice-card > p:not(.xxv-kicker){
  grid-area:copy;
}

body.home .xxv-choice-card > .xxv-card-buttons{
  grid-area:button;
  align-self:end;
}

body.home .xxv-choice-card-visual{
  grid-area:visual;
  align-self:center;
  justify-self:end;
  width:150px;
  max-width:100%;
  margin:0!important;
}

body.home .xxv-choice-card-visual img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  border-radius:0!important;
}

/* Mantiene i due pulsanti allineati verso il fondo dei riquadri. */
body.home .xxv-choice-card{
  min-height:220px;
}

@media (max-width:900px){
  body.home .xxv-choice-card{
    grid-template-columns:minmax(0, 1fr) 130px;
    column-gap:18px;
  }

  body.home .xxv-choice-card-visual{
    width:130px;
  }
}

@media (max-width:620px){
  body.home .xxv-choice-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "kicker"
      "title"
      "copy"
      "visual"
      "button";
    row-gap:10px;
    min-height:0;
  }

  body.home .xxv-choice-card-visual{
    justify-self:center;
    width:min(190px, 62%);
    margin:6px auto 8px!important;
  }

  body.home .xxv-choice-card > .xxv-card-buttons{
    width:100%;
  }
}

/* ===== Dettagli account: nota Nome visualizzato v1.7.10 ===== */

/*
 * WooCommerce mostra sotto "Nome visualizzato" la frase:
 * "Questo è il modo in cui il tuo nome verrà visualizzato..."
 * Nello Shop non è utile, quindi la nascondiamo senza modificare il campo.
 */
.xxv-account-page:not(.xxv-account-guest)
.woocommerce-EditAccountForm
#account_display_name + span{
  display:none!important;
}

/* ===== Home centrata v1.7.14 ===== */

/*
 * Nuova composizione dei due riquadri principali:
 * immagine -> titolo -> descrizione -> pulsante.
 * Tutto centrato, sia su desktop sia su smartphone.
 */
body.home .xxv-choice-grid{
  align-items:stretch!important;
}

body.home .xxv-choice-grid > .wp-block-column{
  display:flex!important;
}

body.home .xxv-choice-card{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  min-height:360px!important;
  text-align:center!important;
  box-sizing:border-box!important;
}

/* Le vecchie etichette "Stadio Olimpico" / "Prodotti del Club"
   restano nascoste anche se la Home proviene dal Site Editor. */
body.home .xxv-choice-card > .xxv-kicker{
  display:none!important;
}

/* L'immagine diventa l'elemento introduttivo della card. */
body.home .xxv-choice-card-visual{
  order:1!important;
  width:150px!important;
  max-width:46%!important;
  margin:0 auto 18px!important;
  align-self:center!important;
  justify-self:auto!important;
}

body.home .xxv-choice-card-visual img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
}

body.home .xxv-choice-card > h2{
  order:2!important;
  margin:0 0 12px!important;
  text-align:center!important;
  text-transform:uppercase!important;
  letter-spacing:.015em;
  line-height:1.08;
}

body.home .xxv-choice-card > p:not(.xxv-kicker){
  order:3!important;
  max-width:520px;
  margin:0 auto 22px!important;
  text-align:center!important;
  line-height:1.55;
}

body.home .xxv-choice-card > .xxv-card-buttons{
  order:4!important;
  margin-top:auto!important;
  justify-content:center!important;
  width:100%!important;
}

body.home .xxv-choice-card > .xxv-card-buttons .wp-block-button{
  margin:0 auto!important;
}

body.home .xxv-choice-card > .xxv-card-buttons .wp-block-button__link{
  text-align:center!important;
}

/* Tablet */
@media (max-width:900px){
  body.home .xxv-choice-card{
    min-height:340px!important;
  }

  body.home .xxv-choice-card-visual{
    width:135px!important;
    max-width:48%!important;
  }
}

/* Smartphone: una card per riga, stessa composizione centrale. */
@media (max-width:700px){
  body.home .xxv-choice-grid{
    display:block!important;
  }

  body.home .xxv-choice-grid > .wp-block-column{
    width:100%!important;
    margin:0 0 20px!important;
  }

  body.home .xxv-choice-card{
    min-height:0!important;
    padding:26px 22px!important;
  }

  body.home .xxv-choice-card-visual{
    width:145px!important;
    max-width:58%!important;
    margin-bottom:16px!important;
  }

  body.home .xxv-choice-card > h2{
    font-size:1.75rem!important;
    margin-bottom:10px!important;
  }

  body.home .xxv-choice-card > p:not(.xxv-kicker){
    margin-bottom:20px!important;
  }

  body.home .xxv-choice-card > .xxv-card-buttons{
    margin-top:0!important;
  }
}


/* ===== Carrello + Checkout: impaginazione v1.7.15 ===== */

/*
 * WooCommerce usa blocchi "wide" che possono oltrepassare il padding
 * del template. Li riportiamo dentro la nostra xxv-shell.
 */
.xxv-checkout-page .wp-block-woocommerce-checkout,
.xxv-cart-page .wp-block-woocommerce-cart{
  width:100%!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}

/* Margine laterale sempre presente anche se il template della pagina
   è stato salvato nel Site Editor. */
.xxv-checkout-page .wp-block-post-content,
.xxv-cart-page .wp-block-post-content{
  box-sizing:border-box!important;
  padding-left:clamp(18px, 2vw, 24px)!important;
  padding-right:clamp(18px, 2vw, 24px)!important;
}

/*
 * La vecchia regola "gap:34px" applicata direttamente a wc-block-checkout
 * faceva superare il 100% alle larghezze native WooCommerce, mandando
 * il Riepilogo dell'ordine sotto al modulo. Usiamo una vera griglia.
 */
.xxv-checkout-page .wc-block-components-sidebar-layout,
.xxv-cart-page .wc-block-components-sidebar-layout{
  display:grid!important;
  grid-template-columns:minmax(0, 1.72fr) minmax(300px, .88fr)!important;
  gap:34px!important;
  align-items:start!important;
  width:100%!important;
  max-width:none!important;
}

.xxv-checkout-page .wc-block-components-sidebar-layout > .wc-block-components-main,
.xxv-cart-page .wc-block-components-sidebar-layout > .wc-block-components-main{
  width:auto!important;
  max-width:none!important;
  padding-right:0!important;
  margin:0!important;
  min-width:0!important;
}

.xxv-checkout-page .wc-block-components-sidebar-layout > .wc-block-components-sidebar,
.xxv-cart-page .wc-block-components-sidebar-layout > .wc-block-components-sidebar{
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  min-width:0!important;
}

/* Il riepilogo rimane nella colonna destra senza deformarsi. */
.xxv-checkout-page .wc-block-components-sidebar{
  box-sizing:border-box!important;
}

/*
 * "Effettua ordine" viene presentato una sola volta, sotto il riepilogo.
 * Il pulsante WooCommerce originale resta nel DOM, invisibile, e continua
 * a gestire validazione e invio dell'ordine.
 */
.xxv-checkout-page .xxv-native-place-order-hidden{
  display:none!important;
}

.xxv-checkout-page .xxv-checkout-original-terms{
  display:none!important;
}

.xxv-checkout-page .xxv-checkout-final-actions{
  margin-top:22px!important;
  padding-top:20px!important;
  border-top:1px solid var(--xxv-line)!important;
}

.xxv-checkout-page .xxv-checkout-terms-copy{
  margin:0 0 14px!important;
  font-size:.9rem!important;
  line-height:1.5!important;
}

.xxv-checkout-page .xxv-checkout-terms-copy a{
  color:var(--xxv-red)!important;
  font-weight:850!important;
  text-decoration:underline!important;
  text-underline-offset:3px;
}

.xxv-checkout-page .xxv-place-order-proxy{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:52px!important;
  margin:0!important;
  padding:12px 18px!important;
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
  border:0!important;
  border-radius:6px!important;
  font-size:1rem!important;
  font-weight:900!important;
  cursor:pointer;
}

.xxv-checkout-page .xxv-place-order-proxy:disabled{
  opacity:.55!important;
  cursor:not-allowed!important;
  transform:none!important;
}

/* Tablet e smartphone: modulo, riepilogo e pulsante in sequenza verticale. */
@media (max-width:900px){
  .xxv-checkout-page .wc-block-components-sidebar-layout,
  .xxv-cart-page .wc-block-components-sidebar-layout{
    grid-template-columns:minmax(0, 1fr)!important;
    gap:26px!important;
  }

  .xxv-checkout-page .wc-block-components-sidebar,
  .xxv-cart-page .wc-block-components-sidebar{
    position:static!important;
    top:auto!important;
  }
}

@media (max-width:700px){
  .xxv-checkout-page .wp-block-post-content,
  .xxv-cart-page .wp-block-post-content{
    padding-left:16px!important;
    padding-right:16px!important;
  }

  .xxv-checkout-page .wc-block-components-checkout-step{
    padding-left:17px!important;
    padding-right:17px!important;
  }

  .xxv-checkout-page .wc-block-components-sidebar,
  .xxv-cart-page .wc-block-components-sidebar{
    padding:18px!important;
  }
}


/* ===== Checkout mobile: ordine corretto dei contenuti v1.7.16 ===== */

/*
 * Nei Checkout Blocks WooCommerce la sidebar può comparire prima del
 * contenuto principale nel DOM. Quando le colonne diventano una sola,
 * questo portava Riepilogo + "Effettua ordine" in cima alla pagina.
 *
 * Forziamo quindi l'ordine logico:
 * 1. contenuto principale del checkout
 * 2. riepilogo ordine
 * 3. termini/privacy + pulsante finale
 */
.xxv-checkout-page .wc-block-components-sidebar-layout > .wc-block-components-main{
  order:1!important;
}

.xxv-checkout-page .wc-block-components-sidebar-layout > .wc-block-components-sidebar{
  order:2!important;
}

@media (max-width:900px){
  .xxv-checkout-page .wc-block-components-sidebar-layout{
    display:flex!important;
    flex-direction:column!important;
    gap:26px!important;
  }

  .xxv-checkout-page .wc-block-components-sidebar-layout > .wc-block-components-main{
    order:1!important;
    width:100%!important;
  }

  .xxv-checkout-page .wc-block-components-sidebar-layout > .wc-block-components-sidebar{
    order:2!important;
    width:100%!important;
  }

  /*
   * L'azione finale resta in fondo alla sidebar, quindi dopo tutto
   * il riepilogo dell'ordine.
   */
  .xxv-checkout-page .xxv-checkout-final-actions{
    order:99!important;
    width:100%!important;
  }
}


/* ===== Home tre categorie v1.7.18 ===== */

body.home .xxv-home-category-stack{
  display:flex!important;
  flex-direction:column!important;
  gap:24px!important;
  margin:0 0 48px!important;
}

body.home .xxv-home-ticket-row{
  display:flex!important;
  justify-content:center!important;
  width:100%!important;
}

body.home .xxv-home-ticket-row > .xxv-choice-card{
  width:min(780px, 100%)!important;
}

body.home .xxv-home-shop-grid{
  display:grid!important;
  grid-template-columns:repeat(2, minmax(0, 1fr))!important;
  gap:24px!important;
  align-items:stretch!important;
  width:100%!important;
}

body.home .xxv-home-shop-grid > .wp-block-column{
  display:flex!important;
  margin:0!important;
  min-width:0!important;
}

body.home .xxv-home-shop-grid > .xxv-choice-card,
body.home .xxv-home-shop-grid > .wp-block-column > .xxv-choice-card{
  width:100%!important;
  height:100%!important;
}

body.home .xxv-card-official{
  border-left:6px solid var(--xxv-red)!important;
  border-top:3px solid var(--xxv-yellow)!important;
}

body.home .xxv-official-visual{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  aspect-ratio:1!important;
  border-radius:50%!important;
  background:linear-gradient(
    135deg,
    var(--xxv-red) 0 64%,
    var(--xxv-yellow) 64% 100%
  )!important;
  color:#FFFFFF!important;
  box-shadow:0 8px 22px rgba(0,0,0,.08)!important;
  line-height:1!important;
}

body.home .xxv-official-visual span{
  display:block!important;
  margin-bottom:4px!important;
  font-size:.72rem!important;
  font-weight:900!important;
  letter-spacing:.18em!important;
}

body.home .xxv-official-visual strong{
  display:block!important;
  font-size:1.35rem!important;
  font-weight:950!important;
  letter-spacing:.04em!important;
}

body.home .xxv-official-button .wp-block-button__link{
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
  box-shadow:inset 0 -4px 0 var(--xxv-yellow)!important;
}

body.home .xxv-home-ticket-row .xxv-choice-card,
body.home .xxv-home-shop-grid .xxv-choice-card{
  min-height:350px!important;
}

@media (max-width:700px){
  body.home .xxv-home-category-stack{
    gap:20px!important;
  }

  body.home .xxv-home-shop-grid{
    grid-template-columns:1fr!important;
    gap:20px!important;
  }

  body.home .xxv-home-ticket-row > .xxv-choice-card,
  body.home .xxv-home-shop-grid .xxv-choice-card{
    width:100%!important;
    min-height:0!important;
  }

  body.home .xxv-official-visual{
    width:145px!important;
    max-width:58%!important;
  }
}

/* ===== Prodotti Ufficiali: immagine personalizzata v1.7.19 ===== */

body.home .xxv-card-official .xxv-choice-card-visual{
  width:150px!important;
  max-width:46%!important;
  margin:0 auto 18px!important;
  aspect-ratio:auto!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  overflow:visible!important;
}

body.home .xxv-card-official .xxv-choice-card-visual img{
  display:block!important;
  width:100%!important;
  height:auto!important;
  object-fit:contain!important;
  border-radius:0!important;
}

/* Il pulsante usa esattamente lo stesso stile del Merchandising. */
body.home .xxv-card-official .xxv-red-button .wp-block-button__link{
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
  box-shadow:none!important;
}

@media (max-width:900px){
  body.home .xxv-card-official .xxv-choice-card-visual{
    width:135px!important;
    max-width:48%!important;
  }
}

@media (max-width:700px){
  body.home .xxv-card-official .xxv-choice-card-visual{
    width:145px!important;
    max-width:58%!important;
  }
}


/* ===== Header compatto v1.7.22 ===== */

/* Una sola riga su desktop. */
.xxv-header-inner{
  min-height:72px!important;
  padding-block:7px!important;
  flex-wrap:nowrap!important;
  gap:18px!important;
}

.xxv-brand{
  flex:0 0 auto!important;
  gap:11px!important;
  white-space:nowrap!important;
}

.xxv-logo{
  width:54px!important;
  height:54px!important;
  flex-basis:54px!important;
}

.xxv-brand-copy strong{
  font-size:1rem!important;
  line-height:1.08!important;
}

.xxv-brand-copy small{
  margin-top:4px!important;
  font-size:.64rem!important;
}

.xxv-header-navs{
  margin-left:auto!important;
  flex:0 1 auto!important;
  min-width:0!important;
}

.xxv-nav-desktop{
  display:flex!important;
  width:auto!important;
}

.xxv-nav-mobile{
  display:none!important;
}

/* Menu principale più compatto, ma senza sacrificare la leggibilità. */
.xxv-nav-desktop .wp-block-navigation__container{
  flex-wrap:nowrap!important;
  gap:clamp(13px, 1.25vw, 19px)!important;
  align-items:center!important;
}

.xxv-nav-desktop .wp-block-navigation-item{
  white-space:nowrap!important;
}

.xxv-nav-desktop .wp-block-navigation-item__content,
.xxv-nav-desktop .wp-block-navigation-submenu__toggle{
  padding:8px 0!important;
  font-size:.88rem!important;
  font-weight:800!important;
  line-height:1.1!important;
  color:var(--xxv-ink)!important;
  text-decoration:none!important;
}

.xxv-nav-desktop .wp-block-navigation-item__content:hover,
.xxv-nav-desktop .wp-block-navigation-submenu__toggle:hover,
.xxv-nav-desktop .wp-block-navigation-submenu__toggle[aria-expanded="true"]{
  color:var(--xxv-red)!important;
}

/* Dropdown SHOP */
.xxv-nav-desktop .wp-block-navigation__submenu-container{
  min-width:245px!important;
  margin-top:4px!important;
  padding:8px!important;
  background:#FFFFFF!important;
  border:1px solid var(--xxv-line)!important;
  border-radius:9px!important;
  box-shadow:0 12px 30px rgba(0,0,0,.10)!important;
}

.xxv-nav-desktop .wp-block-navigation__submenu-container
.wp-block-navigation-item{
  width:100%!important;
}

.xxv-nav-desktop .wp-block-navigation__submenu-container
.wp-block-navigation-item__content{
  display:block!important;
  width:100%!important;
  box-sizing:border-box!important;
  padding:10px 12px!important;
  border-radius:6px!important;
  font-size:.88rem!important;
  line-height:1.25!important;
}

.xxv-nav-desktop .wp-block-navigation__submenu-container
.wp-block-navigation-item__content:hover{
  background:var(--xxv-soft)!important;
  color:var(--xxv-red)!important;
}

/* Icona account: il testo resta nel DOM per accessibilità. */
.xxv-nav-desktop .xxv-account-icon-link
.wp-block-navigation-item__content{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:28px!important;
  height:34px!important;
  padding:0!important;
  overflow:hidden!important;
  font-size:0!important;
}

.xxv-nav-desktop .xxv-account-icon-link
.wp-block-navigation-item__content::before{
  content:""!important;
  display:block!important;
  width:20px!important;
  height:20px!important;
  background:currentColor!important;
  -webkit-mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-5 0-9 2.5-9 5.5V22h18v-2.5C21 16.5 17 14 12 14Z'/%3E%3C/svg%3E")
    center/contain no-repeat!important;
  mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 12a5 5 0 1 0 0-10 5 5 0 0 0 0 10Zm0 2c-5 0-9 2.5-9 5.5V22h18v-2.5C21 16.5 17 14 12 14Z'/%3E%3C/svg%3E")
    center/contain no-repeat!important;
}

/* Carrello allineato alle altre icone. */
.xxv-nav-desktop .wc-block-mini-cart{
  margin:0!important;
}

.xxv-nav-desktop .wc-block-mini-cart__button{
  min-width:30px!important;
  padding:5px!important;
}

/*
 * Sotto 1040 px passiamo deliberatamente al menu raccolto.
 * Evita una versione desktop compressa o su due righe su notebook/tablet.
 */
@media (max-width:1040px){
  .xxv-header-inner{
    min-height:70px!important;
    padding-block:8px!important;
  }

  .xxv-logo{
    width:52px!important;
    height:52px!important;
    flex-basis:52px!important;
  }

  .xxv-nav-desktop{
    display:none!important;
  }

  .xxv-nav-mobile{
    display:flex!important;
  }

  .xxv-nav-mobile .wp-block-navigation__responsive-container-open{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    padding:8px!important;
  }

  /* L'overlay mobile rimane piatto: nessun secondo livello. */
  .xxv-nav-mobile
  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation__container{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:0!important;
  }

  .xxv-nav-mobile
  .wp-block-navigation__responsive-container.is-menu-open
  .wp-block-navigation-item{
    width:100%!important;
  }
}

@media (max-width:560px){
  .xxv-brand-copy strong{
    font-size:.91rem!important;
  }

  .xxv-brand-copy small{
    font-size:.59rem!important;
  }

  .xxv-logo{
    width:47px!important;
    height:47px!important;
    flex-basis:47px!important;
  }

  .xxv-header-inner{
    gap:8px!important;
  }
}

@media (max-width:390px){
  .xxv-brand{
    gap:8px!important;
  }

  .xxv-brand-copy strong{
    font-size:.84rem!important;
  }

  .xxv-brand-copy small{
    font-size:.55rem!important;
    letter-spacing:.09em!important;
  }
}


/* ===== Percorso ordine semplificato v1.7.23 ===== */

.xxv-order-steps{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  max-width:760px;
  margin:8px auto 26px;
  padding:0 18px;
  box-sizing:border-box;
}

.xxv-order-step{
  display:flex;
  align-items:center;
  gap:8px;
  color:#777;
  font-size:.92rem;
  font-weight:800;
  white-space:nowrap;
}

.xxv-order-step__number{
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  flex:0 0 32px;
  border:2px solid #CFCFCF;
  border-radius:50%;
  background:#FFFFFF;
  color:#666;
  font-weight:900;
}

.xxv-order-step.is-active{
  color:var(--xxv-red);
}

.xxv-order-step.is-active .xxv-order-step__number{
  border-color:var(--xxv-red);
  background:var(--xxv-red);
  color:#FFFFFF;
}

.xxv-order-step.is-complete{
  color:#333;
}

.xxv-order-step.is-complete .xxv-order-step__number{
  border-color:var(--xxv-yellow);
  background:var(--xxv-yellow);
  color:#171717;
}

.xxv-order-step__arrow{
  color:#A7A7A7;
  font-size:1.1rem;
  font-weight:900;
}

.xxv-cart-added-guide{
  display:flex;
  align-items:flex-start;
  gap:15px;
  width:100%;
  margin:0 0 24px;
  padding:20px 22px;
  box-sizing:border-box;
  border:2px solid var(--xxv-yellow);
  border-left:7px solid var(--xxv-red);
  border-radius:10px;
  background:#FFF9E8;
  box-shadow:0 5px 16px rgba(0,0,0,.045);
}

.xxv-cart-added-guide__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:50%;
  background:#258A4B;
  color:#FFFFFF;
  font-size:1.35rem;
  font-weight:900;
}

.xxv-cart-added-guide__copy strong{
  display:block;
  margin:0 0 5px;
  color:var(--xxv-ink);
  font-size:1.18rem;
  line-height:1.25;
}

.xxv-cart-added-guide__copy p{
  margin:0;
  color:#333;
  font-size:1rem;
  line-height:1.55;
}

.xxv-cart-page .xxv-continue-order{
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:56px!important;
  margin:10px 0 0!important;
  padding:14px 22px!important;
  box-sizing:border-box!important;
  border-radius:7px!important;
  background:var(--xxv-red)!important;
  color:#FFFFFF!important;
  font-size:1.05rem!important;
  font-weight:950!important;
  letter-spacing:.015em!important;
  text-align:center!important;
  text-decoration:none!important;
}

.xxv-cart-page .xxv-continue-order:hover{
  color:#FFFFFF!important;
  filter:brightness(.92);
}

.xxv-cart-next-instruction{
  margin:18px 0 5px!important;
  color:#333;
  font-size:.96rem;
  font-weight:750;
  line-height:1.45;
  text-align:center;
}

.xxv-continue-shopping{
  display:block;
  width:max-content;
  max-width:100%;
  margin:15px auto 2px;
  color:var(--xxv-red)!important;
  font-size:.94rem;
  font-weight:800;
  text-align:center;
  text-decoration:underline!important;
  text-underline-offset:3px;
}

@media (max-width:700px){
  .xxv-order-steps{
    gap:7px;
    margin-bottom:20px;
    padding-inline:4px;
  }

  .xxv-order-step{
    flex-direction:column;
    gap:4px;
    font-size:.72rem;
    line-height:1.1;
    text-align:center;
  }

  .xxv-order-step__number{
    width:30px;
    height:30px;
    flex-basis:30px;
  }

  .xxv-order-step__arrow{
    margin-top:-17px;
    font-size:.95rem;
  }

  .xxv-cart-added-guide{
    gap:12px;
    padding:17px 16px;
    border-left-width:6px;
  }

  .xxv-cart-added-guide__icon{
    width:34px;
    height:34px;
    flex-basis:34px;
    font-size:1.15rem;
  }

  .xxv-cart-added-guide__copy strong{
    font-size:1.08rem;
  }

  .xxv-cart-added-guide__copy p{
    font-size:.95rem;
  }

  .xxv-cart-page .xxv-continue-order{
    min-height:58px!important;
    font-size:1.02rem!important;
  }
}


/* ===== Correzione CTA Carrello v1.7.24 ===== */
.xxv-cart-page .xxv-duplicate-checkout-button{
  display:none!important;
}


/* ===== Carrello React-safe v1.7.25 ===== */

/*
 * Il testo del pulsante viene sostituito solo VISIVAMENTE via CSS:
 * nessun nodo viene inserito o rimosso dentro il blocco React WooCommerce.
 */
.xxv-cart-page .xxv-continue-order .wc-block-components-button__text{
  font-size:0!important;
  line-height:1!important;
}

.xxv-cart-page .xxv-continue-order .wc-block-components-button__text::after{
  content:"CONTINUA CON L'ORDINE";
  display:inline-block;
  font-size:1.05rem!important;
  line-height:1.2!important;
  font-weight:950!important;
  letter-spacing:.015em!important;
}

/* Fallback per il Carrello classico. */
.xxv-cart-page a.checkout-button.xxv-continue-order{
  font-size:0!important;
}

.xxv-cart-page a.checkout-button.xxv-continue-order::after{
  content:"CONTINUA CON L'ORDINE";
  font-size:1.05rem!important;
  line-height:1.2!important;
  font-weight:950!important;
}

/*
 * L'istruzione viene resa con uno pseudo-elemento sul contenitore già
 * esistente: nessuna manipolazione strutturale del DOM WooCommerce.
 */
.xxv-cart-page .wc-block-cart__submit-container::before{
  content:"Hai controllato tutto? Premi il pulsante qui sotto per continuare.";
  display:block;
  margin:0 0 10px;
  color:#333;
  font-size:.96rem;
  font-weight:750;
  line-height:1.45;
  text-align:center;
}

/* Il vecchio elemento JS della v1.7.23/24 non viene più creato. */
.xxv-cart-page .xxv-cart-next-instruction{
  display:none!important;
}

.xxv-continue-shopping-wrap{
  display:flex;
  justify-content:center;
  width:100%;
  margin:18px 0 4px;
}

.xxv-continue-shopping{
  display:inline-block;
  margin:0!important;
}

/* La rete di sicurezza duplicati della v1.7.24 non è più necessaria. */
.xxv-cart-page .xxv-duplicate-checkout-button{
  display:initial;
}

@media (max-width:700px){
  .xxv-cart-page .xxv-continue-order .wc-block-components-button__text::after,
  .xxv-cart-page a.checkout-button.xxv-continue-order::after{
    font-size:1.02rem!important;
  }

  .xxv-cart-page .wc-block-cart__submit-container::before{
    font-size:.94rem;
    margin-bottom:12px;
  }
}
