/* ============================================================
   VALOA — Inner pages — LIGHT edition
   ============================================================ */

/* ---------- Inner hero ---------- */
.phero { position: relative; padding-top: calc(var(--nav-h) + clamp(3rem, 9vh, 7rem));
  padding-bottom: clamp(3rem, 7vh, 5rem);
  background: radial-gradient(55% 70% at 50% 0%, rgba(107,18,40,0.07), transparent 66%); overflow: hidden; text-align: center; }
.phero h1 { font-size: clamp(2.8rem, 8vw, 6.5rem); margin: 1.4rem 0 0; position: relative; z-index: 2; }
.phero p { position: relative; z-index: 2; margin: 1.6rem auto 0; max-width: 48ch; color: var(--ink-soft); }
.phero.left { text-align: left; }
.phero.left h1, .phero.left p { margin-inline: 0; }

/* ---------- Wizard (Gift Finder) ---------- */
.wizard { max-width: 60rem; margin: 0 auto; }
.wizard__progress { display: flex; gap: 0.6rem; justify-content: center; margin-bottom: 1.1rem; }
.wizard__progress i { width: 46px; height: 2px; background: var(--line); transition: background 0.5s var(--ease); }
.wizard__progress i.done { background: var(--bordeaux); }
.wizard__step-label { text-align: center; font-size: 0.7rem; letter-spacing: 0.32em; text-transform: uppercase; color: var(--bordeaux); font-weight: 500; }
.wizard__q { text-align: center; font-family: var(--serif); font-style: italic; font-size: clamp(1.6rem, 3.4vw, 2.6rem); margin: 1rem 0 2.4rem; color: var(--ink); }
.wizard__options { display: flex; flex-wrap: wrap; gap: 0.9rem; justify-content: center; }
.chip {
  padding: 1em 1.8em; border: 1px solid var(--line); color: var(--ink-soft);
  font-size: 0.9rem; letter-spacing: 0.04em; background: var(--surface);
  transition: all 0.4s var(--ease);
}
.chip:hover { border-color: var(--bordeaux); color: var(--bordeaux); transform: translateY(-2px); box-shadow: var(--shadow); }
.chip.selected { background: var(--bordeaux); color: var(--bianco); border-color: var(--bordeaux); }
.wizard__nav { display: flex; justify-content: center; gap: 1rem; margin-top: 2.6rem; }
.wizard__panel { animation: fadeUp 0.6s var(--ease) both; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } }

/* Result card */
.result { max-width: 46rem; margin: 2.5rem auto 0; border: 1px solid var(--bordeaux); padding: clamp(1.6rem, 4vw, 2.8rem);
  background: var(--surface); box-shadow: var(--shadow-hover); animation: fadeUp 0.7s var(--ease) both; }
.result__title { font-family: var(--serif); font-style: italic; color: var(--bordeaux); font-size: 1.3rem; margin-bottom: 1.6rem;
  display: flex; align-items: center; gap: 0.6rem; }
.result__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem;
  padding: 1.1rem 0; border-top: 1px solid var(--line-soft); }
.result__row h4 { font-family: var(--serif); font-size: 1.2rem; font-weight: 400; color: var(--ink); }
.result__row span { color: var(--bordeaux); font-size: 0.92rem; white-space: nowrap; font-weight: 500; }
.result__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.8rem; }
.result__restart { display: block; text-align: center; margin-top: 1.4rem; color: var(--ink-faint); font-size: 0.8rem; letter-spacing: 0.1em; }
.result__restart:hover { color: var(--bordeaux); }

/* Gift Finder — hint, altro, risultati a 3 proposte */
.wizard__hint { text-align: center; color: var(--ink-faint); font-size: 0.85rem; margin: -1.6rem 0 2rem; }
.wizard__other { display: block; width: min(28rem, 100%); margin: 1.4rem auto 0; padding: 0.8rem 1rem;
  border: 1px solid var(--line); background: var(--surface); font-family: var(--sans); color: var(--ink); }
.wizard__other:focus { outline: none; border-color: var(--bordeaux); }
.chip[disabled] { opacity: 0.5; cursor: not-allowed; }

.gf-result { max-width: 68rem; margin: 1.5rem auto 0; }
.gf-warn { max-width: 44rem; margin: 1.4rem auto 0; text-align: center; font-size: 0.86rem; color: var(--bordeaux);
  border: 1px solid var(--line); background: rgba(201,170,106,0.08); padding: 0.9rem 1.2rem; }
.gf-results { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin: 2rem 0 1rem; align-items: stretch; }
.gf-tier { display: flex; flex-direction: column; border: 1px solid var(--line-soft); background: var(--surface);
  padding: 1.6rem; box-shadow: var(--shadow); transition: border-color 0.4s var(--ease), box-shadow 0.4s var(--ease); }
.gf-tier:hover { border-color: var(--bordeaux); box-shadow: var(--shadow-hover); }
.gf-tier--star { border-color: var(--bordeaux); }
.gf-tier--star .gf-tier__badge { background: var(--bordeaux); color: var(--bianco); border-color: var(--bordeaux); }
.gf-tier__badge { align-self: flex-start; font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--bordeaux);
  border: 1px solid var(--line); padding: 0.35em 0.8em; }
.gf-tier__tagline { font-family: var(--serif); font-style: italic; font-size: 1.15rem; color: var(--ink); margin: 0.9rem 0 1.1rem; }
.gf-tier__comps { display: grid; gap: 0.5rem; margin-bottom: 0.4rem; flex: 1; }
.gf-comp { display: flex; justify-content: space-between; gap: 0.8rem; align-items: baseline; text-decoration: none;
  border-bottom: 1px solid var(--line-soft); padding-bottom: 0.5rem; }
.gf-comp span { color: var(--ink); font-size: 0.9rem; }
.gf-comp b { color: var(--bordeaux); font-family: var(--serif); white-space: nowrap; }
.gf-comp:hover span { color: var(--bordeaux); }
.gf-tier__total { display: flex; justify-content: space-between; align-items: baseline; margin: 0.6rem 0 0.2rem; }
.gf-tier__total span { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-faint); }
.gf-tier__total b { font-family: var(--serif); font-size: 1.3rem; color: var(--bordeaux); }
.gf-tier__grande { color: var(--ink-soft); font-size: 0.9rem; line-height: 1.55; flex: 1; margin-bottom: 1rem; }
.gf-tier__cta { margin-top: 1.1rem; justify-content: center; }
.gf-tier--grande { border-color: var(--bordeaux); background: linear-gradient(180deg, rgba(107,18,40,0.05), var(--surface) 60%); }

.gf-lead { max-width: 44rem; margin: 1rem auto 0; }
.gf-lead .wizard__q { margin-bottom: 0.6rem; }

@media (max-width: 820px) {
  .gf-results { grid-template-columns: 1fr; }
}

/* ---------- Forms (shared) ---------- */
.field { margin-bottom: 1.4rem; }
.field label { display: block; font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bordeaux); margin-bottom: 0.6rem; font-weight: 500; }
.field input, .field select, .field textarea {
  width: 100%; background: var(--bg); border: 1px solid var(--line);
  color: var(--ink); padding: 0.95rem 1.1rem; font-family: var(--sans); font-size: 0.95rem; font-weight: 300;
  outline: none; transition: border-color 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
.field input::placeholder, .field textarea::placeholder { color: var(--ink-faint); }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(107,18,40,0.08); }
.field textarea { resize: vertical; min-height: 120px; }
.field select { appearance: none; background-image: linear-gradient(45deg,transparent 50%,var(--bordeaux) 50%),linear-gradient(135deg,var(--bordeaux) 50%,transparent 50%);
  background-position: calc(100% - 20px) center, calc(100% - 15px) center; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.toggle-group { display: flex; gap: 0.8rem; }
.toggle { flex: 1; padding: 0.85rem; border: 1px solid var(--line); color: var(--ink-soft); text-align: center;
  font-size: 0.85rem; transition: all 0.4s var(--ease); background: var(--surface); }
.toggle.on { border-color: var(--bordeaux); color: var(--bordeaux); background: rgba(107,18,40,0.06); }
.form-note { display: flex; align-items: center; gap: 0.5rem; justify-content: center; color: var(--ink-faint); font-size: 0.78rem; margin-top: 1.2rem; }

.card-panel { border: 1px solid var(--line-soft); background: var(--surface); box-shadow: var(--shadow); padding: clamp(1.6rem, 4vw, 2.6rem); }
.card-panel__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1.6rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); }
.card-panel__head h3 { font-family: var(--serif); font-style: italic; font-size: 1.4rem; color: var(--ink); }
.card-panel__head span { font-size: 0.62rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--bordeaux); }

/* ---------- Saved dates (Promemoria) ---------- */
.dates { display: grid; gap: 0.8rem; }
.drow { display: flex; align-items: center; gap: 1rem; padding: 1.1rem 1.2rem; border: 1px solid var(--line-soft);
  background: var(--bg); transition: border-color 0.4s var(--ease), box-shadow 0.4s var(--ease); }
.drow:hover { border-color: var(--bordeaux); box-shadow: 0 0 30px -14px rgba(107,18,40,0.5); }
.drow__ico { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--bordeaux); flex-shrink: 0; }
.drow__main { flex: 1; }
.drow__main strong { display: block; font-weight: 500; font-size: 1rem; color: var(--ink); }
.drow__main small { color: var(--ink-soft); font-size: 0.8rem; }
.badge { font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; padding: 0.35em 0.8em; border: 1px solid var(--line); color: var(--ink-soft); }
.badge.urgent { border-color: var(--bordeaux); color: var(--bianco); background: var(--bordeaux); }
.badge.soon { border-color: var(--bordeaux); color: var(--bordeaux); }
.drow__del { color: var(--ink-faint); font-size: 1.1rem; transition: color 0.3s; }
.drow__del:hover { color: var(--bordeaux); }
.dates-empty { text-align: center; color: var(--ink-faint); padding: 2rem; font-style: italic; font-family: var(--serif); }

/* ---------- Calendar ---------- */
.cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.4rem; }
.cal__nav { display: flex; align-items: center; gap: 1rem; }
.cal__nav button { width: 38px; height: 38px; border: 1px solid var(--line); color: var(--bordeaux); transition: all 0.3s; }
.cal__nav button:hover { border-color: var(--bordeaux); background: var(--bordeaux); color: var(--bianco); }
.cal__title { font-family: var(--serif); font-size: 1.3rem; min-width: 9rem; color: var(--ink); }
.cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid var(--line); }
.cal__dow { text-align: center; font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bordeaux);
  padding: 0.8rem 0; border-bottom: 1px solid var(--line); }
.cal__cell { min-height: 4.4rem; padding: 0.5rem 0.6rem; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft);
  font-size: 0.82rem; color: var(--ink-soft); position: relative; }
.cal__cell:nth-child(7n) { border-right: none; }
.cal__cell.muted { color: var(--ink-faint); opacity: 0.4; }
.cal__cell.today { background: rgba(107,18,40,0.08); color: var(--bordeaux); font-weight: 500; }
.cal__cell.has::after { content: ""; position: absolute; bottom: 8px; left: 0.6rem; width: 6px; height: 6px; border-radius: 50%; background: var(--bordeaux); }
.cal__legend { display: flex; gap: 1.4rem; margin-top: 1.2rem; font-size: 0.72rem; color: var(--ink-soft); }
.cal__legend i { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 0.4rem; background: var(--bordeaux); }

/* ---------- Catalogo ---------- */
.filters { display: flex; flex-wrap: wrap; gap: 0.7rem; align-items: center; margin-bottom: 3rem; }
.filters .flabel { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bordeaux); margin-right: 0.8rem; font-weight: 500; }
.filters .count { margin-left: auto; color: var(--ink-faint); font-size: 0.8rem; }
/* Smussati come i bottoni, ma non riempiti: sono filtri, e se fossero
   tutti pieni sembrerebbero tutti attivi. */
.fbtn { padding: 0.65em 1.4em; border-radius: 8px; border: 1px solid var(--line); color: var(--ink-soft); font-size: 0.8rem; letter-spacing: 0.06em; transition: all 0.35s var(--ease); background: var(--surface); }
/* I filtri rispondono meno dei bottoni: sono molti e affiancati, e una
   crescita marcata li farebbe accavallare. */
.fbtn { transform: translateZ(0); }
.fbtn:hover, .fbtn:focus-visible { border-color: var(--bordeaux); color: var(--bordeaux); transform: scale(1.04); }
.fbtn:active { transform: scale(1.08); transition-duration: 0.12s; }
.fbtn.active { background: var(--bordeaux); color: var(--oro); border-color: var(--bordeaux); }
.grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.pcard { border: 1px solid var(--line-soft); overflow: hidden; display: flex; flex-direction: column;
  background: var(--surface); box-shadow: var(--shadow);
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease), box-shadow 0.5s var(--ease); }
.pcard:hover { border-color: var(--bordeaux); box-shadow: var(--shadow-hover); animation: heartbeat 2.7s ease-in-out infinite; }
.pcard__media { aspect-ratio: 4/5; position: relative; display: grid; place-items: center; overflow: hidden;
  background: radial-gradient(120% 90% at 50% 0%, var(--bg-alt), #ece2cf); }
.pcard__glyph { font-family: var(--serif); font-size: 5rem; color: rgba(107,18,40,0.30); transition: transform 0.7s var(--ease), color 0.5s var(--ease); }
.pcard:hover .pcard__glyph { transform: scale(1.12) rotate(-4deg); color: rgba(107,18,40,0.55); }
.pcard__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.7s var(--ease); }
.pcard:hover .pcard__img { transform: scale(1.06); }
.pcard__tag { position: absolute; top: 1rem; left: 1rem; font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--bordeaux); border: 1px solid var(--line); padding: 0.3em 0.7em; background: var(--surface); }
.pcard__body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.pcard__body h3 { font-family: var(--serif); font-size: 1.4rem; font-weight: 400; color: var(--ink); }
.pcard__body p { color: var(--ink-soft); font-size: 0.85rem; flex: 1; }
.pcard__foot { display: flex; align-items: center; justify-content: space-between; margin-top: 0.6rem; }
.pcard__price { font-family: var(--serif); color: var(--bordeaux); font-size: 1.2rem; }
.pcard { text-decoration: none; color: inherit; cursor: pointer; }
.pcard__opts { display: block; font-family: var(--sans); font-size: 0.6rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-faint); margin-top: 0.15rem; }

/* ---------- Contatti ---------- */
.contact-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.info-block { margin-bottom: 2.2rem; }
.info-block h4 { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bordeaux); margin-bottom: 0.5rem; font-weight: 500; }
.info-block a, .info-block p { font-family: var(--serif); font-size: 1.3rem; color: var(--ink); }
.info-block a:hover { color: var(--bordeaux); }
.info-small { font-family: var(--sans) !important; font-size: 0.9rem !important; color: var(--ink-soft) !important; }
.contact-grid .footer__social a { color: var(--ink-soft); }
.contact-grid .footer__social a:hover { color: var(--bordeaux); }

/* ---------- Toast ---------- */
.toast { position: fixed; bottom: 2rem; left: 50%; transform: translateX(-50%) translateY(120%); z-index: 7000;
  background: var(--bordeaux); color: var(--bianco); padding: 1rem 1.8rem; font-size: 0.85rem; letter-spacing: 0.06em;
  display: flex; align-items: center; gap: 0.6rem; transition: transform 0.6s var(--ease); box-shadow: 0 20px 50px -20px rgba(74,12,27,0.5); }
.toast.show { transform: translateX(-50%) translateY(0); }

@media (max-width: 900px) {
  .grid { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .grid { grid-template-columns: 1fr; }
  .cal__cell { min-height: 3rem; font-size: 0.7rem; }
}

/* ---------- Checkout ---------- */
.co-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; }
.co-side { position: sticky; top: 90px; }
.co-items { display: grid; gap: 0.5rem; margin-bottom: 1.2rem; }
.co-item { display: flex; justify-content: space-between; gap: 1rem; font-size: 0.9rem; }
.co-item__n { color: var(--ink); } .co-item__n em { color: var(--ink-faint); font-style: normal; }
.co-item__p { color: var(--bordeaux); font-weight: 500; white-space: nowrap; }
.co-line { display: flex; justify-content: space-between; padding: 0.6rem 0; border-top: 1px solid var(--line-soft); font-size: 0.9rem; color: var(--ink-soft); }
.co-line b { color: var(--ink); font-weight: 500; }
.co-total { border-top: 1px solid var(--line); margin-top: 0.3rem; }
.co-total span { font-family: var(--serif); font-size: 1.2rem; color: var(--ink); }
.co-total b { font-family: var(--serif); font-size: 1.5rem; color: var(--bordeaux); font-weight: 600; }
.co-pay { display: flex; justify-content: space-between; align-items: baseline; margin: 1rem 0; padding-top: 0.8rem; border-top: 1px dashed var(--line); }
.co-pay__k { color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.68rem; }
.co-pay b { color: var(--ink); font-weight: 500; font-size: 0.9rem; }
.co-submit { width: 100%; justify-content: center; margin-top: 0.6rem; }
.co-zone { margin-top: 1rem; border: 1px solid var(--line-soft); padding: 1rem 1.2rem; background: var(--surface); }
.co-zone__top { display: flex; align-items: center; gap: 0.5rem; font-family: var(--serif); font-weight: 600; font-size: 1.1rem; color: var(--ink); }
.co-zone .zdot { width: 11px; height: 11px; border-radius: 50%; flex-shrink: 0; }
.co-zone.z-verde .zdot { background: #3f7d4f; } .co-zone.z-arancione .zdot { background: #c98a3a; } .co-zone.z-rosso .zdot { background: #9e2a35; }
.co-zone__rows { display: flex; justify-content: space-between; gap: 0.8rem; margin: 0.6rem 0 0.4rem; font-size: 0.85rem; color: var(--ink-soft); }
.co-zone__rows b { color: var(--bordeaux); }
.co-zone__hint { font-size: 0.78rem; color: var(--ink-soft); }
.co-empty { text-align: center; padding: 4rem 0; display: grid; gap: 1.4rem; justify-items: center; }
.co-empty p { font-family: var(--serif); font-style: italic; font-size: 1.4rem; color: var(--ink-soft); }
.co-done { text-align: center; padding: 3rem 0 4rem; display: grid; gap: 1.1rem; justify-items: center; }
.co-done__mark { width: 64px; height: 64px; border-radius: 50%; background: #3f7d4f; color: #fff; display: grid; place-items: center; font-size: 2rem; }
.co-done h2 { font-size: clamp(2rem, 5vw, 2.8rem); }
.co-done p { color: var(--ink-soft); max-width: 42ch; }
.co-consent { margin: 1rem 0 0.4rem; display: grid; gap: 0.6rem; }
.co-check { display: flex; gap: 0.6rem; align-items: flex-start; font-size: 0.82rem; color: var(--ink-soft); line-height: 1.45; cursor: pointer; }
.co-check input { margin-top: 0.15rem; width: 1rem; height: 1rem; accent-color: var(--bordeaux); flex-shrink: 0; }
.co-check span { color: var(--ink-faint); }
.co-consent__note { font-size: 0.76rem; color: var(--ink-faint); line-height: 1.5; }
@media (max-width: 900px) { .co-grid { grid-template-columns: 1fr; } .co-side { position: static; } }

/* ---------- Pagina prodotto (PDP) ---------- */
.pdp__back { display: inline-flex; align-items: center; gap: 0.4rem; margin-bottom: 1.6rem; }
.pdp__missing { text-align: center; padding: 4rem 0; display: grid; gap: 1.4rem; justify-items: center; }
.pdp__missing p { font-family: var(--serif); font-style: italic; font-size: 1.4rem; color: var(--ink-soft); }

.pdp__top { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(1.8rem, 4vw, 3.5rem); align-items: start; }
.pdp__media { position: relative; aspect-ratio: 4/5; display: grid; place-items: center; overflow: hidden;
  border: 1px solid var(--line-soft); background: radial-gradient(120% 90% at 50% 0%, var(--bg-alt), #ece2cf); box-shadow: var(--shadow); }
.pdp__tag { position: absolute; top: 1rem; left: 1rem; font-size: 0.58rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--bordeaux); border: 1px solid var(--line); padding: 0.3em 0.7em; background: var(--surface); }
.pdp__glyph { font-family: var(--serif); font-size: 8rem; color: rgba(107,18,40,0.32); }
.pdp__img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Cambio colore in dissolvenza: foto sovrapposte + lampo dorato */
.pdp__media.has-colors .pdp__img { grid-area: 1 / 1; opacity: 0; transform: scale(1.06);
  transition: opacity 0.9s var(--ease), transform 1.1s var(--ease); }
.pdp__media.has-colors .pdp__img.show { opacity: 1; transform: scale(1); }
.pdp__shimmer { position: absolute; inset: -10%; pointer-events: none; opacity: 0; z-index: 2;
  background: linear-gradient(105deg, transparent 38%, rgba(201,170,106,0.5) 50%, transparent 62%);
  transform: translateX(-120%); }
.pdp__shimmer.run { animation: pdpShimmer 1.1s var(--ease) forwards; }
@keyframes pdpShimmer { from { opacity: 1; transform: translateX(-120%); } to { opacity: 0; transform: translateX(120%); } }
@media (prefers-reduced-motion: reduce) {
  .pdp__media.has-colors .pdp__img { transition: opacity 0.2s linear; transform: none; }
  .pdp__media.has-colors .pdp__img.show { transform: none; }
  .pdp__shimmer.run { animation: none; }
}

.pdp__cat { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bordeaux); }
.pdp__info h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); margin: 0.5rem 0 1rem; }
.pdp__intro { color: var(--ink-soft); font-size: 1rem; line-height: 1.6; max-width: 46ch; }
.pdp__season { margin-top: 0.8rem; font-size: 0.85rem; color: var(--ink-soft); }
.pdp__season.out { color: var(--bordeaux); font-weight: 500; }

.pdp__choose { margin: 1.8rem 0 1.4rem; }
.pdp__label { display: block; font-size: 0.66rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-faint); margin-bottom: 0.8rem; }
.pdp__opts { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.pdp__opt { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.65rem 1rem; border: 1px solid var(--line); background: var(--surface);
  font-family: var(--sans); font-size: 0.85rem; color: var(--ink); cursor: pointer; transition: border-color 0.4s var(--ease), background 0.4s var(--ease); }
.pdp__opt b { font-family: var(--serif); color: var(--bordeaux); }
.pdp__opt:hover { border-color: var(--bordeaux); }
.pdp__opt.on { border-color: var(--bordeaux); background: rgba(107,18,40,0.05); box-shadow: inset 0 0 0 1px var(--bordeaux); }

.pdp__buyrow { display: flex; align-items: center; gap: 1.4rem; margin-bottom: 1.2rem; }
.pdp__qty { display: inline-flex; align-items: center; border: 1px solid var(--line); }
.pdp__qty button { width: 2.6rem; height: 2.6rem; font-size: 1.1rem; color: var(--bordeaux); background: none; border: none; cursor: pointer; }
.pdp__qty b { min-width: 2.2rem; text-align: center; font-family: var(--serif); font-size: 1.1rem; }
.pdp__price { font-family: var(--serif); font-size: 2rem; color: var(--bordeaux); }
.pdp__add { width: 100%; justify-content: center; }
.pdp__add:disabled { opacity: 0.5; cursor: not-allowed; }
.pdp__hint { font-size: 0.78rem; color: var(--ink-faint); margin-top: 0.9rem; }
/* PDP — verifica zona di consegna (prodotti fragili: fiori) */
.pdp__zone { margin: 1.5rem 0 0.4rem; }
.pdp__zonerow { display: flex; gap: 0.6rem; }
.pdp__zonerow input { flex: 1; min-width: 0; background: var(--surface); border: 1px solid var(--line); color: var(--ink);
  padding: 0.8rem 1rem; font-family: inherit; font-size: 0.95rem; letter-spacing: 0.1em; }
.pdp__zonerow input:focus { outline: none; border-color: var(--bordeaux); box-shadow: 0 0 0 3px rgba(107,18,40,0.08); }
.pdp__zonerow input::placeholder { color: var(--ink-faint); letter-spacing: 0.04em; }
.pdp__zonerow .btn { white-space: nowrap; }
.pdp__zoneerr { margin-top: 0.7rem; color: #9e2a35; font-size: 0.85rem; }

.pdp__sections { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1.4rem; margin-top: clamp(2.5rem, 6vh, 4rem); align-items: start; }
.pdp__list { columns: 2; column-gap: 1.6rem; }
.pdp__list li { position: relative; margin-bottom: 0.55rem; font-size: 0.9rem; color: var(--ink-soft); break-inside: avoid; list-style: none; }

.pdp__grande { border-color: var(--bordeaux); background: linear-gradient(180deg, rgba(107,18,40,0.05), var(--surface) 60%); }
.pdp__grande-eyebrow { font-size: 0.66rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--bordeaux); }
.pdp__grande h3 { font-family: var(--serif); font-style: italic; font-size: clamp(1.5rem, 3vw, 2rem); color: var(--ink); margin: 0.6rem 0 0.8rem; }
.pdp__grande p { color: var(--ink-soft); font-size: 0.92rem; line-height: 1.6; margin-bottom: 1.4rem; }
.pdp__grande .btn { width: 100%; justify-content: center; }
.pdp__grande-note { display: block; text-align: center; font-size: 0.72rem; color: var(--ink-faint); margin-top: 0.8rem; }

@media (max-width: 860px) {
  .pdp__top { grid-template-columns: 1fr; }
  .pdp__media { max-width: 26rem; }
  .pdp__sections { grid-template-columns: 1fr; }
  .pdp__list { columns: 1; }
}

/* ---------- Pagine legali ---------- */
.legal { max-width: 52rem; margin: 0 auto; }
.legal__draft { border: 1px dashed var(--bordeaux); background: rgba(107,18,40,0.05); color: var(--bordeaux);
  padding: 1rem 1.2rem; font-size: 0.85rem; line-height: 1.55; margin-bottom: 2.6rem; }
.legal__draft strong { color: var(--bordeaux); }
.legal h2 { font-family: var(--serif); font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--ink); margin: 2.6rem 0 0.8rem; }
.legal h3 { font-family: var(--sans); font-size: 1rem; font-weight: 500; color: var(--bordeaux); margin: 1.6rem 0 0.5rem; }
.legal p, .legal li { color: var(--ink-soft); font-size: 0.95rem; line-height: 1.75; }
.legal p { margin-bottom: 0.9rem; }
.legal ul { margin: 0 0 1.1rem 1.3rem; }
.legal li { margin-bottom: 0.4rem; list-style: disc; }
.legal strong { color: var(--ink); }
.legal a { color: var(--bordeaux); text-decoration: underline; }
.legal__updated { color: var(--ink-faint); font-size: 0.82rem; margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid var(--line-soft); }
.legal__tbl { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: 0.9rem; }
.legal__tbl th, .legal__tbl td { border: 1px solid var(--line); padding: 0.6rem 0.8rem; text-align: left; color: var(--ink-soft); vertical-align: top; }
.legal__tbl th { color: var(--ink); font-weight: 500; }
.legal__form { border: 1px solid var(--line-soft); background: var(--surface); padding: 1.4rem 1.6rem; margin: 1rem 0; font-size: 0.9rem; color: var(--ink-soft); line-height: 1.9; }
/* 03/10: da nascosto il toast sporgeva di 2 cm dal fondo (barra bordeaux in basso) */
.toast { transform: translateX(-50%) translateY(calc(100% + 3rem)); opacity: 0; transition: transform .5s var(--ease), opacity .3s; }
.toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }
