:root {
  --rouge: #C8102E;
  --rouge-hover: #8B0A1E;
  --noir: #080808;
  --noir-2: #111111;
  --noir-3: #181818;
  --cream: #F2E8E2;
  --gray: #B8B0AE;
  --gray-label: #A09896;
  --ash: #2A2828;

.single-product .site-content .ast-container {
  display: flex !important;
  flex-direction: column !important;
  max-width: 100% !important;
  padding: 0 !important;
  width: 100% !important;
}

.single-product .rp-breadcrumb,
.single-product .rp-wrap,
.single-product .rp-related {
  width: 100% !important;
  max-width: 100% !important;
  flex-shrink: 0 !important;
}

.rp-breadcrumb,
.rp-wrap,
.rp-related {
  width: 100% !important;
  max-width: 100% !important;
  flex-shrink: 0 !important;
}

.site-content,
.ast-woocommerce-container,
.woocommerce-notices-wrapper,
.woocommerce-breadcrumb {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.entry-content > .rp-breadcrumb,
.entry-content > .rp-wrap,
.entry-content > .rp-related {
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  width: 100vw !important;
  max-width: 100vw !important;
}

body { background: var(--noir); color: var(--cream); }
.site-main, .entry-content { max-width: 100% !important; padding: 0 !important; }
.ast-container { max-width: 100% !important; padding: 0 !important; }

.rp-breadcrumb { padding: 1.2rem 3rem; border-bottom: 1px solid var(--ash); display: flex; gap: .8rem; align-items: center; }
.rp-breadcrumb a, .rp-breadcrumb span { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: var(--gray-label); text-decoration: none; }
.rp-breadcrumb a:hover { color: var(--cream); }
.rp-sep { color: var(--ash); font-size: .5rem; }

.rp-wrap { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - 81px); }

/* ── GALLERY PAGINA PRODOTTO (IMMAGINE GIGANTE A5) ── */
/* ── CORNICE FOTO PRINCIPALE ── */
.rp-gallery { 
  display: flex; 
  flex-direction: column; 
  border-right: 1px solid var(--ash); 
  background: var(--noir); 
  /* Aggiungiamo lo spazio di 1px o 2px qui */
  padding: 2px !important; 
}

.rp-gallery-main { 
  position: relative; 
  overflow: hidden; 
  padding: 0 !important; 
  background: var(--ash); /* Il colore della "linea" che si vedrà nel gap */
}

.rp-gallery-main img { 
  width: 100% !important;  /* Occupa tutta la larghezza della colonna... */
  height: auto !important; /* ...e cresce in altezza mantenendo l'A5 */
  aspect-ratio: 148 / 210; 
  object-fit: cover;
  display: block; 
  transition: transform .4s ease; 
}

.rp-gallery-main:hover img { 
  transform: scale(1.03); 
}

/* Watermark e Zoom Hint */
.rp-watermark { 
  position: absolute; 
  bottom: 1.5rem; 
  right: 1.5rem; 
  font-family: 'Archivo', sans-serif; 
  font-weight: 700; 
  font-size: .55rem; 
  letter-spacing: .3em; 
  text-transform: lowercase; 
  color: rgba(242,232,226,.15); 
  pointer-events: none; 
}
.rp-watermark span { color: rgba(200,16,46,.2); }

.rp-zoom-hint { 
  position: absolute; 
  bottom: 1.5rem; 
  left: 1.5rem; 
  font-family: 'DM Sans', sans-serif; 
  font-weight: 300; 
  font-size: .55rem; 
  letter-spacing: .2em; 
  text-transform: uppercase; 
  color: rgba(176,168,164,.4); 
  pointer-events: none; 
}

/* ── INFO PRODOTTO (STICKY SULLA DESTRA) ── */
.rp-info { 
  position: sticky; /* Ora è il testo a rimanere incollato allo schermo! */
  top: 81px; 
  max-height: calc(100vh - 81px); /* Non sfora il monitor */
  padding: 3rem; 
  display: flex; 
  flex-direction: column; 
  gap: 2rem; 
  overflow-y: auto; /* Scrolla internamente solo se c'è troppo testo */
}
.rp-watermark { position: absolute; bottom: 1.5rem; right: 1.5rem; font-family: 'Archivo', sans-serif; font-weight: 700; font-size: .55rem; letter-spacing: .3em; text-transform: lowercase; color: rgba(242,232,226,.15); pointer-events: none; }
.rp-watermark span { color: rgba(200,16,46,.2); }
.rp-zoom-hint { position: absolute; bottom: 1.5rem; left: 1.5rem; font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .55rem; letter-spacing: .2em; text-transform: uppercase; color: rgba(176,168,164,.4); pointer-events: none; }

.rp-info { padding: 3rem; display: flex; flex-direction: column; gap: 2rem; overflow-y: auto; }
.rp-meta-top { display: flex; justify-content: space-between; align-items: flex-start; }
.rp-tag { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .55rem; letter-spacing: .4em; text-transform: uppercase; color: var(--rouge); }
.rp-num { font-family: 'Archivo', sans-serif; font-weight: 300; font-size: .7rem; color: var(--gray-label); letter-spacing: .2em; }
.rp-title { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 2.5rem; line-height: 1.05; letter-spacing: -.02em; color: var(--cream); margin: 0; }

.rp-price-block { display: flex; align-items: baseline; gap: 1rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--ash); }
.rp-price { font-family: 'Archivo', sans-serif; font-weight: 300; font-size: 2rem; color: var(--cream); line-height: 1; }
.rp-price-note { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .65rem; color: var(--gray-label); letter-spacing: .15em; }

.rp-label { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gray-label); margin-bottom: .8rem; }
.rp-format-single { background: var(--noir-2); border: 1px solid var(--rouge); padding: 1rem 1.2rem; display: flex; justify-content: space-between; align-items: center; }
.rp-format-size { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: .9rem; color: var(--cream); }
.rp-format-note { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .6rem; color: var(--gray-label); }
.rp-format-price { font-family: 'Archivo', sans-serif; font-weight: 300; font-size: 1rem; color: var(--cream); }

.rp-bundle { background: var(--noir-2); border: 1px solid var(--ash); padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; }
.rp-bundle-head { display: flex; justify-content: space-between; align-items: center; }
.rp-bundle-title { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: var(--rouge); }
.rp-bundle-badge { font-family: 'Archivo', sans-serif; font-weight: 300; font-size: .6rem; color: var(--gray-label); letter-spacing: .15em; }
.rp-bundle-msg { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .72rem; color: var(--gray); line-height: 1.5; }
.rp-bundle-msg strong { color: var(--cream); font-weight: 400; }
.rp-progress-bar { height: 2px; background: var(--ash); position: relative; }
.rp-progress-fill { position: absolute; left: 0; top: 0; height: 100%; background: var(--rouge); }
.rp-bundle-opts { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--ash); }
.rp-bopt { background: var(--noir-2); padding: .8rem .5rem; text-align: center; position: relative; }
.rp-bopt.reached { background: var(--noir-3); }
.rp-bopt.current { background: var(--noir-3); outline: 1px solid rgba(200,16,46,.5); }
.rp-bopt.best { outline: 1px solid var(--rouge); }
.rp-bopt.current.best { outline: 1px solid var(--rouge); }
.rp-bopt-badge { position: absolute; top: -1px; left: 50%; transform: translateX(-50%); background: var(--rouge); color: var(--cream); font-size: .4rem; letter-spacing: .2em; text-transform: uppercase; padding: .15rem .4rem; white-space: nowrap; font-family: 'DM Sans', sans-serif; }
.rp-bopt-num { font-family: 'Archivo', sans-serif; font-weight: 700; font-size: 1rem; color: var(--cream); display: block; }
.rp-bopt-label { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .45rem; color: var(--gray-label); letter-spacing: .15em; text-transform: uppercase; display: block; }
.rp-bopt-price { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .6rem; color: var(--gray); display: block; margin-top: .2rem; }
.rp-bopt-disc { font-family: 'DM Sans', sans-serif; font-size: .5rem; color: #40916C; display: block; min-height: .7rem; }
.rp-bopt.reached .rp-bopt-price { color: #40916C; }
.rp-bopt.current::after { content: ''; position: absolute; bottom: 4px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; background: var(--rouge); border-radius: 50%; }

.rp-cta { display: flex; flex-direction: column; gap: .8rem; }
/* ── TASTO AGGIUNGI AL CARRELLO (RETTANGOLO STONDATO) ── */
.rp-btn-primary { 
  width: 100% !important; /* Torna a occupare la larghezza disponibile */
  height: auto !important; /* Altezza basata sul padding */
  padding: 1.1rem 2rem !important; 
  border-radius: 50px !important; /* Arrotonda gli angoli come una pillola */
  background: var(--rouge); 
  color: var(--cream); 
  font-family: 'DM Sans', sans-serif; 
  font-weight: 300; 
  font-size: .65rem; 
  letter-spacing: .35em; 
  text-transform: uppercase; 
  border: none; 
  cursor: pointer; 
  transition: all .2s ease; 
  display: block; 
  text-align: center; 
  text-decoration: none;
  line-height: 1;
}

.rp-btn-primary:hover { 
  background: var(--rouge-hover); 
  transform: translateY(-2px); /* Leggero sollevamento al passaggio */
}

/* Applichiamo la stessa stondatura al tasto Wishlist per simmetria */
.rp-btn-secondary { 
  border-radius: 50px !important; 
  padding: 1rem 2rem !important;
}
.rp-btn-secondary { width: 100%; padding: 1rem 2rem; background: transparent; color: var(--cream); font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .6rem; letter-spacing: .35em; text-transform: uppercase; border: 1px solid var(--ash); cursor: pointer; transition: border-color .2s; }
.rp-btn-secondary:hover { border-color: var(--cream); }
.rp-cta-note { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .6rem; color: var(--gray-label); text-align: center; letter-spacing: .1em; }

.rp-details { display: flex; flex-direction: column; border-top: 1px solid var(--ash); padding-top: 1.5rem; }
.rp-row { display: flex; justify-content: space-between; padding: .8rem 0; border-bottom: 1px solid var(--ash); }
.rp-key { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .65rem; letter-spacing: .15em; color: var(--gray-label); text-transform: uppercase; }
.rp-val { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .7rem; color: var(--cream); text-align: right; }

.rp-shipping { display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem; background: var(--noir-2); border: 1px solid var(--ash); }
.rp-dot { width: 6px; height: 6px; background: #40916C; border-radius: 50%; margin-top: .4rem; flex-shrink: 0; }
.rp-shipping-text { font-family: 'DM Sans', sans-serif; font-weight: 300; font-size: .7rem; color: var(--gray); line-height: 1.7; }
.rp-shipping-text strong { color: var(--cream); font-weight: 300; }

.rp-related { 
  padding: 4rem 2px 0 2px !important; 
  border-top: 1px solid var(--ash); 
  width: 100% !important;
  box-sizing: border-box !important;
}
.rp-related-label { 
  font-family: 'DM Sans', sans-serif; 
  font-weight: 300; 
  font-size: .55rem; 
  letter-spacing: .4em; 
  text-transform: uppercase; 
  color: var(--rouge); 
  margin-bottom: 2rem; 
  padding-left: 10px; /* Sposta leggermente il testo dal bordo per non farlo toccare */
}
.rp-related-grid { 
  display: grid; 
  grid-template-columns: repeat(5, 1fr); 
  gap: 2px !important; /* Spazio millimetrico tra le card */
  background: var(--ash) !important; /* Questo colore creerà la linea di separazione */
  width: 100% !important;
  border: 1px solid var(--ash); /* Chiude il perimetro della griglia */
}
.rp-related-card { background: var(--noir-2); overflow: hidden; cursor: pointer; position: relative; text-decoration: none; display: block; }
.rp-related-img { width: 100%; height: auto; aspect-ratio: 148 / 210; background: linear-gradient(160deg,#180808,#220c10,#0e0808); transition: opacity .3s; }
.rp-related-card:hover .rp-related-img { opacity: .7; }
/* ── RIPRISTINO FONT SUGGERIMENTI ── */
/* ── UNIFORMITÀ GRIGI SUGGERIMENTI ── */
.rp-related-num { 
  font-family: 'DM Sans', sans-serif !important; 
  font-weight: 300 !important; 
  font-size: .65rem !important; 
  letter-spacing: .15em !important; 
  text-transform: uppercase !important; 
  color: var(--gray-label) !important; /* Grigio invece di Cream */
}

.rp-related-price { 
  font-family: 'Archivo', sans-serif !important; 
  font-weight: 300 !important; 
  font-size: .7rem !important; 
  color: var(--gray-label) !important; 
  letter-spacing: .05em !important;
}

.rp-related-price { 
  /* Font del prezzo: Tecnico e leggero */
  font-family: 'Archivo', sans-serif !important; 
  font-weight: 300 !important; 
  font-size: .7rem !important; 
  color: var(--gray-label) !important; 
  letter-spacing: .05em !important;
}

.rp-related-info { 
  padding: 1rem .5rem !important; /* Leggero respiro interno */
  display: flex; 
  justify-content: space-between; 
  align-items: center; 
}
.rp-related-overlay { position: absolute; inset: 0; background: rgba(200,16,46,0); display: flex; align-items: center; justify-content: center; transition: background .3s; }
.rp-related-card:hover .rp-related-overlay { background: rgba(200,16,46,.08); }
.rp-related-overlay-text { font-family: 'DM Sans', sans-serif; font-size: .55rem; letter-spacing: .3em; text-transform: uppercase; color: transparent; transition: color .3s; }
.rp-related-card:hover .rp-related-overlay-text { color: var(--cream); }

/* ── TASTO AGGIUNGI AL CARRELLO (SUGGERIMENTI) ── */
.rp-related-card .button {
  position: absolute !important;
  top: 1rem !important;
  right: 1rem !important;
  width: 28px !important;
  height: 28px !important;
  padding: 0 !important;
  background: rgba(8,8,8,0.8) !important;
  color: transparent !important;
  border: 1px solid var(--gray) !important;
  border-radius: 0 !important;
  font-size: 0 !important;
  opacity: 0 !important;
  transition: opacity 0.3s, background 0.2s !important;
  z-index: 10 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.rp-related-card .button::before {
  content: '' !important; position: absolute !important;
  width: 10px !important; height: 1px !important; background: var(--rouge) !important;
}
.rp-related-card .button::after {
  content: '' !important; position: absolute !important;
  width: 1px !important; height: 10px !important; background: var(--rouge) !important;
}

.rp-related-card:hover .button { opacity: 1 !important; }

.rp-related-card .button:hover {
  background: rgba(200,16,46,0.2) !important;
  border-color: var(--rouge) !important;
}

/* ── ANIMAZIONI CARRELLO (REPLICATE DA SHOP.CSS) ── */
@keyframes priverouge-button-alive {
  0%   { transform: scale(0.8) rotate(0deg); }
  40%  { transform: scale(1.25) rotate(15deg); }
  70%  { transform: scale(0.95) rotate(-5deg); }
  100% { transform: scale(1) rotate(0deg); }
}

.rp-related-card .button.is-adding {
  background: var(--rouge) !important;
  border-color: var(--rouge) !important;
  animation: priverouge-button-alive 0.5s ease-out forwards !important;
}

.rp-related-card .button.is-adding::before {
  width: 5px !important; left: 40% !important; top: 58% !important;
  transform: translate(-50%, -50%) rotate(45deg) !important;
  background: var(--cream) !important;
}

.rp-related-card .button.is-adding::after {
  height: 8px !important; left: 56% !important; top: 48% !important;
  transform: translate(-50%, -50%) rotate(45deg) !important;
  background: var(--cream) !important;
}

/* ── STATO "NEL CARRELLO" (GRIGIO) ── */
.rp-related-card.in-collezione .rp-related-img {
  filter: grayscale(100%) brightness(30%) !important;
}

.rp-related-card::after {
  content: 'NEL TUO CARRELLO' !important;
  position: absolute !important;
  top: 40% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  color: #C8102E !important;
  font-family: 'DM Sans', sans-serif !important;
  font-size: 0.55rem !important;
  letter-spacing: 0.4em !important;
  text-transform: uppercase !important;
  font-weight: 300 !important;
  z-index: 5 !important;
  pointer-events: none !important;
  opacity: 0 !important;
  transition: opacity 0.8s ease !important;
  text-align: center !important;
  width: 90% !important;
}

.rp-related-card.in-collezione::after {
  opacity: 1 !important;
}

/* ── NASCONDI IL LINK "VIEW CART" NATIVO DI WOOCOMMERCE ── */
.rp-related-card .added_to_cart {
  display: none !important;
}