/* ==========================================================================
   Muzi Design v2 — componenti delle pagine interne
   Si appoggia ai token di muzi-v2.css. Classi generate da _build/v2/build.py.
   ========================================================================== */

.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Icone (Lucide / Simple Icons, inline) ---------- */
.v2-ico { width: 1.25em; height: 1.25em; flex: none; vertical-align: -.2em; stroke: currentColor; fill: none; }
.v2-ico--brand { fill: currentColor; stroke: none; }
.v2-ico path, .v2-ico circle, .v2-ico rect, .v2-ico line, .v2-ico polyline, .v2-ico polygon, .v2-ico ellipse { vector-effect: non-scaling-stroke; }
a:hover > .v2-ico:not(.v2-ico--brand), button:hover > .v2-ico:not(.v2-ico--brand) { animation: ico-nudge .6s var(--ease-out); }
@keyframes ico-nudge { 40% { transform: translateX(3px) rotate(-6deg); } }

/* ---------- Header: voci solo mobile ---------- */
.main-nav__mobile { display: none; }
@media (max-width: 1023px) {
  .main-nav__mobile { display: block; margin-top: 18px; }
  .main-nav__mobile a { display: inline-flex; padding: 12px 22px; background: var(--rovere); color: var(--bianco); font-size: 1rem; letter-spacing: .1em; text-transform: uppercase; }
}

/* ---------- Header su pagine con apertura chiara ---------- */
.has-light-top .site-header { color: var(--grafite); }
.has-light-top .site-header .brand img { filter: none; }
.has-light-top .util-bar { background: var(--grafite); color: var(--calce); }
.has-light-top .nav-cta { --bg: var(--grafite); --fg: var(--bianco); }
.menu-open .has-light-top .site-header { color: var(--bianco); }
.menu-open .has-light-top .site-header .brand img { filter: invert(1); }

/* ---------- Hero ---------- */
.v2-hero { position: relative; color: var(--bianco); background: var(--grafite); overflow: hidden; }
.v2-hero--full { height: 100svh; min-height: 620px; }
.v2-hero--tall { height: 82svh; min-height: 560px; }
.v2-hero__media { position: absolute; inset: 0; overflow: hidden; }
.v2-hero__zoom { position: absolute; inset: 0; }
.v2-hero__slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.6s var(--ease-io); }
.v2-hero__slide.is-active { opacity: 1; }
.v2-hero__slide img { width: 100%; height: 100%; object-fit: cover; }
.v2-hero__slide.is-active img { animation: kenburns 10s linear forwards; }
.v2-hero__veil {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,22,24,.6) 0%, rgba(20,22,24,0) 30%),
              linear-gradient(0deg, rgba(20,22,24,.9) 0%, rgba(20,22,24,.42) 48%, rgba(20,22,24,.12) 75%);
}
.v2-hero__content {
  position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; gap: 22px;
  padding-top: calc(var(--header-h) + var(--util-h) + 32px); padding-bottom: clamp(44px, 8vh, 96px);
}
.v2-hero__title { font-size: clamp(2.6rem, 6.4vw, 6.6rem); line-height: .95; letter-spacing: -.045em; max-width: 16ch; }
.v2-hero--long .v2-hero__title { font-size: clamp(2rem, 4.2vw, 4.1rem); line-height: 1.02; max-width: 24ch; letter-spacing: -.035em; }
.v2-hero__bottom { display: grid; grid-template-columns: minmax(0, 620px) auto; gap: 28px 56px; align-items: end; justify-content: space-between; }
.v2-hero__lead { color: var(--muted-light); font-size: 1.0625rem; line-height: 1.6; }
.v2-hero__lead + .v2-hero__lead { margin-top: 10px; }
.v2-hero__ctas { display: flex; gap: 12px; flex-wrap: wrap; grid-column: 2; grid-row: 1 / span 4; align-self: end; }
.v2-hero__extra { color: var(--muted-light); font-size: .9375rem; max-width: 70ch; }
.v2-hero__extra a { color: inherit; }
.js .v2-hero__content { visibility: hidden; animation: failsafe-show 0s 4.5s forwards; }

.v2-hero--text { color: var(--grafite); background: var(--calce); }
.v2-hero--text .v2-hero__content { height: auto; padding-top: calc(var(--header-h) + var(--util-h) + clamp(64px, 10vw, 140px)); padding-bottom: clamp(56px, 7vw, 100px); border-bottom: 1px solid var(--argilla); }
.v2-hero--text .v2-hero__lead, .v2-hero--text .v2-hero__extra { color: var(--muted); }
.v2-hero--text .v2-hero__title { max-width: 20ch; }

.v2-breadcrumb { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; font-family: var(--f-mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.v2-breadcrumb li { display: inline-flex; gap: 10px; align-items: center; }
.v2-breadcrumb a { text-decoration: none; }
.v2-breadcrumb a:hover { text-decoration: underline; }
.v2-breadcrumb .v2-ico { width: .9em; height: .9em; }

/* ---------- Sezioni ---------- */
.v2-section { position: relative; padding-block: clamp(80px, 10vw, 150px); }
.v2-section--paper { background: var(--calce); }
.v2-section--light { background: var(--bianco); }
.v2-section--dark, .v2-section--cta { background: var(--grafite); color: var(--bianco); }
.v2-section + .v2-section--paper, .v2-section + .v2-section--light { border-top: 1px solid rgba(30,33,36,.06); }

.v2-section p { color: var(--muted); max-width: 68ch; }
.v2-section p + p, .v2-section p + ul, .v2-section ul + p, .v2-section p + ol { margin-top: 1.05em; }
.v2-section--dark p, .v2-section--cta p { color: var(--muted-light); }
.v2-section h3 { font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.15; letter-spacing: -.02em; margin: 1.6em 0 .55em; }
.v2-section h4 { font-size: 1.125rem; letter-spacing: -.01em; margin: 1.2em 0 .4em; }
.v2-section h2:not(.v2-sechead h2) { font-size: var(--fs-section); line-height: 1.05; margin: 1.4em 0 .6em; }
.v2-section strong, .v2-section b { color: var(--grafite); font-weight: 700; }
.v2-section--dark strong, .v2-section--cta strong { color: var(--bianco); }
.v2-section p a, .v2-section li a:not(.btn) {
  color: inherit; text-decoration: none; background: linear-gradient(var(--rovere), var(--rovere)) left bottom / 100% 1px no-repeat;
  padding-bottom: 1px; transition: background-size .45s var(--ease-out), color .3s;
}
.v2-section p a:hover, .v2-section li a:not(.btn):hover { color: var(--rovere); background-size: 0 1px; }
.v2-section ul:not([class]), .v2-section ol:not([class]) { display: grid; gap: .6em; max-width: 68ch; color: var(--muted); }
.v2-section ul:not([class]) li { position: relative; padding-left: 26px; }
.v2-section ul:not([class]) li::before { content: ""; position: absolute; left: 0; top: .78em; width: 14px; height: 1px; background: var(--rovere); }
.v2-section ol:not([class]) { counter-reset: v2ol; }
.v2-section ol:not([class]) li { counter-increment: v2ol; position: relative; padding-left: 36px; }
.v2-section ol:not([class]) li::before { content: counter(v2ol, decimal-leading-zero); position: absolute; left: 0; font-family: var(--f-mono); font-size: .8em; color: var(--rovere); top: .15em; }
.v2-section > .wrap > .btn, .v2-section .wrap > div > .btn { margin-top: 28px; }
.v2-section hr { border: 0; height: 1px; background: var(--argilla); margin-block: 40px; }

.v2-sechead { display: grid; gap: 16px; max-width: 920px; margin-bottom: clamp(40px, 5vw, 72px); }
.v2-sechead h2 { font-size: var(--fs-h2); }
.v2-sechead .eyebrow { order: -1; }
.v2-sechead__lead { font-size: 1.125rem; max-width: 60ch; }
.v2-section--dark .eyebrow, .v2-section--cta .eyebrow { color: var(--rovere-2); }

/* testo con titolo fisso a sinistra */
.v2-section--split .wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 0 clamp(40px, 7vw, 120px); align-items: start; }
.v2-section--split .v2-sechead { grid-column: 1; grid-row: 1 / span 40; position: sticky; top: calc(var(--header-h) + 32px); margin-bottom: 0; }
.v2-section--split .v2-sechead h2 { font-size: var(--fs-section); }
.v2-section--split .wrap > :not(.v2-sechead) { grid-column: 2; }
.v2-section--split .wrap > p:first-of-type { font-size: 1.1875rem; color: var(--grafite); }
.v2-section--dark.v2-section--split .wrap > p:first-of-type { color: var(--bianco); }

/* articoli lunghi */
.v2-section--prose .wrap { max-width: 900px; }
.v2-section--prose .v2-sechead h2 { font-size: var(--fs-section); }
.v2-section--prose .v2-sechead { margin-bottom: 28px; margin-top: 56px; }
.v2-section--prose .wrap > .v2-sechead:first-child { margin-top: 0; }

/* fascia call to action */
.v2-section--cta { overflow: hidden; isolation: isolate; }
.v2-section--cta::before {
  content: ""; position: absolute; inset: auto -10% -40% auto; width: 60vw; height: 60vw; z-index: -1; border-radius: 50%;
  background: radial-gradient(circle, rgba(140,99,59,.35), transparent 65%);
  transform: translateY(calc(var(--cta-shift, 0%) * -1));
}
.v2-section--cta .v2-sechead h2 { font-size: clamp(2.4rem, 6vw, 5.6rem); letter-spacing: -.045em; }
.v2-section--cta .btn { --bg: var(--bianco); --fg: var(--grafite); --bg-h: var(--rovere); --fg-h: var(--bianco); }

/* ---------- Pulsanti secondari ---------- */
.btn--ghost { --bg: transparent; --fg: var(--grafite); --bd: var(--grafite); --bg-h: var(--grafite); --fg-h: var(--bianco); }
.v2-section--dark .btn--ghost, .v2-section--cta .btn--ghost { --fg: var(--bianco); --bd: rgba(250,250,248,.5); --bg-h: var(--bianco); --fg-h: var(--grafite); }
.v2-section--dark .btn--primary { --bg: var(--bianco); --fg: var(--grafite); --bg-h: var(--rovere); --fg-h: var(--bianco); }
button.btn { font-family: var(--f-sans); }

/* ---------- Numeri con icona ---------- */
.v2-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0; border-top: 1px solid currentColor; border-color: rgba(128,128,128,.35); margin-top: 12px; max-width: 900px; }
.v2-stat { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; padding: 18px 18px 6px 0; }
.v2-stat .v2-ico { grid-row: span 2; width: 26px; height: 26px; color: var(--rovere-2); }
.v2-stat > :nth-child(2) { font-size: 1.5rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.v2-stat > :nth-child(3) { font-family: var(--f-mono); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; opacity: .75; }
.v2-hero__extra .v2-stats { color: var(--bianco); }
.v2-hero--text .v2-hero__extra .v2-stats { color: var(--grafite); }

.v2-stats--plain { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 clamp(20px, 3vw, 40px); max-width: none; border-top: 0; }
.v2-stats--plain .v2-stat { display: flex; flex-direction: column; gap: 6px; padding: 26px 0 8px; border-top: 1px solid var(--grafite); }
.v2-stats--plain .v2-stat > :first-child { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rovere); font-weight: 500; }
.v2-stats--plain .v2-stat > :nth-child(2) { font-size: clamp(1.4rem, 2.2vw, 1.9rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.1; }
.v2-stats--plain .v2-stat p { font-size: .95rem; margin: 0; }

/* ---------- Etichette e liste di link ---------- */
.v2-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-block: 12px; }
.v2-chip { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px 9px 12px; border: 1px solid var(--argilla); border-radius: 99px; font-size: .9375rem; background: var(--bianco); transition: border-color .4s, transform .4s var(--ease-out); }
.v2-chip:hover { border-color: var(--rovere); transform: translateY(-2px); }
.v2-chip .v2-ico { color: var(--rovere); width: 16px; height: 16px; }
.v2-chip > * { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.v2-section--dark .v2-chip { background: transparent; border-color: rgba(250,250,248,.25); }
.v2-linklist { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 0 clamp(20px, 3vw, 40px); margin-block: 8px; }
.v2-linklist > * { display: block; }
.v2-linklist__item {
  position: relative; display: flex !important; justify-content: space-between; align-items: center; gap: 16px;
  padding: 20px 4px; border-top: 1px solid var(--argilla); text-decoration: none; color: inherit; font-weight: 600; font-size: 1.0625rem;
  background: none !important;
}
.v2-linklist__item::after {
  content: ""; flex: none; width: 18px; height: 18px; background: currentColor; opacity: .6;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .5s var(--ease-out), opacity .3s;
}
.v2-linklist__item:hover { color: var(--rovere); }
.v2-linklist__item:hover::after { transform: translateX(6px); opacity: 1; }
.v2-linklist__item > .v2-ico { display: none; }
.v2-section--dark .v2-linklist__item { border-color: rgba(250,250,248,.2); }

/* ---------- Blocchi con icona ---------- */
.v2-iconblock { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 0 clamp(20px, 3vw, 40px); align-items: start; padding-block: clamp(28px, 4vw, 48px); border-top: 1px solid var(--argilla); }
.v2-iconblock__icon { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--argilla); color: var(--rovere); transition: background-color .5s var(--ease-out), color .5s; }
.v2-iconblock__icon .v2-ico { width: 28px; height: 28px; }
.v2-iconblock:hover .v2-iconblock__icon { background: var(--rovere); color: var(--bianco); border-color: var(--rovere); }
.v2-iconblock .v2-sechead { margin-bottom: 14px; }
.v2-iconblock .v2-sechead h2 { font-size: var(--fs-section); }
.v2-section--dark .v2-iconblock { border-color: rgba(250,250,248,.2); }

/* ---------- Griglie e card ---------- */
.v2-grid { display: grid; gap: clamp(18px, 2.4vw, 36px); margin-block: 8px; }
.v2-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v2-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.v2-grid + .v2-grid, .v2-grid + .v2-sechead { margin-top: clamp(48px, 6vw, 88px); }
.v2-card { position: relative; display: flex; flex-direction: column; gap: 10px; text-decoration: none; color: inherit; min-width: 0; }
.v2-card h3, .v2-card h4 { margin: 4px 0 0; font-size: clamp(1.3rem, 1.8vw, 1.65rem); line-height: 1.12; }
.v2-card p { font-size: .96rem; line-height: 1.55; margin: 0; }
.v2-card p + p { margin-top: .4em; }
.v2-card__media { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--argilla); margin: 0 0 8px; }
.v2-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease-out); }
.v2-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(140,99,59,.4), transparent 55%); opacity: 0; transition: opacity .6s var(--ease-out); }
.v2-card:hover .v2-card__media img { transform: scale(1.07); }
.v2-card:hover .v2-card__media::after { opacity: 1; }
a.v2-card h3, a.v2-card h4 { background: linear-gradient(currentColor, currentColor) left bottom / 0 1px no-repeat; transition: background-size .6s var(--ease-out); justify-self: start; width: fit-content; }
a.v2-card:hover h3, a.v2-card:hover h4 { background-size: 100% 1px; }
.v2-grid--2 .v2-card__media, .v2-grid--4 .v2-card__media { aspect-ratio: 4 / 3; }
.v2-grid--3 .v2-card--media:nth-child(3n+2) { margin-top: clamp(0px, 4vw, 56px); }

.v2-card--icon, .v2-card--text { padding: 30px 0 8px; border-top: 1px solid currentColor; border-color: rgba(30,33,36,.85); isolation: isolate; }
.v2-card--icon::after {
  content: ""; position: absolute; inset: 0 -14px; z-index: -1; background: var(--calce);
  transform: scaleY(0); transform-origin: top; transition: transform .6s var(--ease-out);
}
.v2-section--paper .v2-card--icon::after { background: var(--bianco); }
.v2-card--icon:hover::after { transform: scaleY(1); }
.v2-card--icon > .v2-ico, .v2-card--icon > * > .v2-ico { width: 46px; height: 46px; color: var(--rovere); stroke-width: 1.3; margin-bottom: 12px; transition: transform .6s var(--ease-out); }
.v2-card--icon:hover .v2-ico { transform: rotate(-8deg) scale(1.08); }
.v2-section--dark .v2-card--icon, .v2-section--dark .v2-card--text { border-color: rgba(250,250,248,.4); }
.v2-section--dark .v2-card--icon::after { background: var(--grafite-2); }
.v2-section--dark .v2-card p { color: var(--muted-light); }

/* ---------- Gallery ---------- */
.v2-gallery { display: grid; gap: clamp(10px, 1.4vw, 20px); grid-auto-flow: dense; margin-block: 8px; }
.v2-gallery--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.v2-gallery--3, .v2-gallery--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.v2-gallery--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.v2-gallery__item { position: relative; overflow: hidden; background: var(--argilla); aspect-ratio: 1; margin: 0; }
.v2-gallery--3 .v2-gallery__item:nth-child(5n+1), .v2-gallery--4 .v2-gallery__item:nth-child(7n+1) { grid-column: span 2; grid-row: span 2; }
.v2-gallery__item img, img.v2-gallery__item { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; transition: transform 1.1s var(--ease-out), filter .6s; }
.v2-gallery__item:hover img, img.v2-gallery__item:hover { transform: scale(1.05); }
.v2-gallery__item > :not(img) { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px; color: var(--bianco); font-weight: 600; background: linear-gradient(0deg, rgba(20,22,24,.75), transparent); pointer-events: none; }

/* ---------- Specifiche (etichetta campione) ---------- */
.v2-specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--grafite); background: var(--bianco); max-width: 1000px; }
.v2-specs__item { padding: 22px 26px; border-bottom: 1px solid var(--argilla); display: grid; gap: 6px; }
.v2-specs__item:nth-child(odd) { border-right: 1px solid var(--argilla); }
.v2-specs__item > :first-child { margin: 0; font-family: var(--f-mono); font-weight: 500; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rovere); }
.v2-specs__item p { color: var(--grafite); font-size: 1.0625rem; margin: 0; }
.v2-section--dark .v2-specs { background: transparent; border-color: rgba(250,250,248,.4); }

/* ---------- Capitoli (guide) ---------- */
.v2-rows { display: grid; }
.v2-row { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 20px clamp(32px, 6vw, 96px); padding-block: clamp(36px, 5vw, 64px); border-top: 1px solid var(--argilla); }
.v2-row__head { margin: 0 !important; font-size: clamp(1.45rem, 2.3vw, 2.1rem) !important; line-height: 1.1; align-self: start; position: sticky; top: calc(var(--header-h) + 28px); }
.v2-row__body > :first-child { margin-top: 0; }
.v2-row__body h3 { font-size: 1.25rem; }

/* ---------- FAQ ---------- */
.v2-faq { display: grid; max-width: 980px; border-bottom: 1px solid var(--argilla); }
.v2-faq__item { border-top: 1px solid var(--argilla); }
.v2-faq__item summary {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px;
  padding: 26px 0; font-weight: 700; font-size: clamp(1.05rem, 1.5vw, 1.3rem); letter-spacing: -.01em; line-height: 1.3;
}
.v2-faq__item summary::-webkit-details-marker { display: none; }
.v2-faq__item summary::after {
  content: ""; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid currentColor;
  background: linear-gradient(currentColor, currentColor) center / 12px 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 12px no-repeat;
  transition: transform .5s var(--ease-out), background-color .4s;
}
.v2-faq__item[open] summary::after { transform: rotate(135deg); }
.v2-faq__item summary:hover { color: var(--rovere); }
.v2-faq__item > :not(summary) { padding-bottom: 26px; max-width: 70ch; }
.v2-faq__item > :not(summary) p { margin: 0; }
details.v2-faq__item:only-child { border-bottom: 1px solid var(--argilla); }
.v2-section--dark .v2-faq, .v2-section--dark .v2-faq__item { border-color: rgba(250,250,248,.2); }

/* ---------- Scroller orizzontale (ex slider) ---------- */
.v2-scroller { display: flex; gap: clamp(16px, 2vw, 28px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 12px; cursor: grab; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); scroll-padding-inline: var(--gutter); }
.v2-scroller::-webkit-scrollbar { display: none; }
.v2-scroller.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.v2-scroller.is-dragging * { pointer-events: none; }
.v2-scroller__item { flex: none; width: clamp(260px, 30vw, 420px); scroll-snap-align: start; }
.v2-scroller__item img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.v2-scroller-bar { height: 2px; background: var(--argilla); margin-top: 22px; max-width: 320px; }
.v2-scroller-bar i { display: block; height: 100%; background: var(--grafite); transform: scaleX(0); transform-origin: left; }

/* ---------- Tabelle ---------- */
.v2-table { overflow-x: auto; margin-block: 24px; border-top: 2px solid var(--grafite); }
.v2-table table { width: 100%; border-collapse: collapse; min-width: 560px; font-size: .96rem; }
.v2-table th, .v2-table td { text-align: left; padding: 14px 16px; border-bottom: 1px solid var(--argilla); vertical-align: top; }
.v2-table th { font-family: var(--f-mono); font-weight: 500; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--rovere); }
.v2-table tr:hover td { background: rgba(140,99,59,.05); }

/* ---------- Form ---------- */
.v2-form { display: grid; gap: 20px; max-width: 760px; margin-top: 12px; }
.v2-form > div, .v2-form fieldset { display: grid; gap: 20px; border: 0; padding: 0; margin: 0; }
.v2-form label { display: block; font-family: var(--f-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.v2-form input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]),
.v2-form select, .v2-form textarea {
  width: 100%; font: 400 1.0625rem/1.4 var(--f-sans); color: var(--grafite); background: transparent;
  border: 0; border-bottom: 1px solid var(--grafite); border-radius: 0; padding: 12px 2px; transition: border-color .3s, background-color .3s;
}
.v2-form select { appearance: none; background: linear-gradient(45deg, transparent 50%, var(--grafite) 50%) calc(100% - 14px) 55% / 6px 6px no-repeat, linear-gradient(-45deg, transparent 50%, var(--grafite) 50%) calc(100% - 8px) 55% / 6px 6px no-repeat; padding-right: 32px; }
.v2-form textarea { min-height: 140px; resize: vertical; }
.v2-form input:focus, .v2-form select:focus, .v2-form textarea:focus { outline: none; border-bottom-color: var(--rovere); background-color: rgba(140,99,59,.05); }
.v2-form input[type=checkbox], .v2-form input[type=radio] { accent-color: var(--rovere); width: 18px; height: 18px; margin-right: 10px; vertical-align: -3px; }
.v2-form input[type=checkbox] + label, .v2-form label:has(input[type=checkbox]) { display: inline; text-transform: none; font-family: var(--f-sans); font-size: .9375rem; letter-spacing: 0; }
.v2-form input[type=file] { font: inherit; font-size: .9rem; }
.v2-form .btn, .v2-form button[type=submit] { justify-self: start; margin-top: 8px; }
.v2-form input[type=submit].btn { padding-inline: 32px; }
.v2-section--dark .v2-form input:not([type=checkbox]), .v2-section--dark .v2-form select, .v2-section--dark .v2-form textarea { color: var(--bianco); border-bottom-color: rgba(250,250,248,.6); }

/* ---------- Embed / citazioni ---------- */
.v2-embed { position: relative; margin-block: 24px; overflow: hidden; background: var(--argilla); }
.v2-embed iframe { display: block; width: 100%; min-height: 420px; border: 0; }
.v2-embed video { display: block; width: 100%; height: auto; }
.v2-quote { margin: 32px 0; padding-left: 28px; border-left: 2px solid var(--rovere); font-size: 1.35rem; line-height: 1.45; font-weight: 500; letter-spacing: -.01em; }
[data-v2-reveal] { overflow: hidden; }
.v2-section img:not(.v2-card__media img):not(.v2-gallery__item img):not(img.v2-gallery__item) { margin-block: 12px; }

/* ---------- Modale (Area Architetti) ---------- */
.form-modal:not(.active) { display: none !important; }
.form-modal.active {
  position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 20px;
  background: rgba(20,22,24,.72); backdrop-filter: blur(6px);
}
.form-modal.active > * { position: relative; background: var(--bianco); color: var(--grafite); max-width: 640px; width: 100%; max-height: 90vh; overflow: auto; padding: clamp(24px, 4vw, 44px); }
.form-modal .v2-form { max-width: none; }
.v2-modal { padding: 0; }

/* ---------- Pulsanti flottanti con etichetta ---------- */
.float-btn__label {
  position: absolute; top: 50%; white-space: nowrap; padding: 8px 14px; border-radius: 99px;
  background: var(--grafite); color: var(--bianco); font: 600 .8125rem/1 var(--f-sans);
  opacity: 0; pointer-events: none; transition: opacity .35s var(--ease-out), transform .35s var(--ease-out);
}
.float-btn--bot .float-btn__label { right: calc(100% + 12px); transform: translate(8px, -50%); }
.float-btn--wa .float-btn__label { left: calc(100% + 12px); transform: translate(-8px, -50%); }
.float-btn:hover .float-btn__label, .float-btn:focus-visible .float-btn__label { opacity: 1; transform: translate(0, -50%); }
.float-btn .v2-ico { width: 26px; height: 26px; }
.float-btn--bot .v2-ico { stroke-width: 1.6; }

/* ---------- Lightbox ---------- */
.v2-lightbox { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; background: rgba(20,22,24,.94); padding: 5vh 5vw; }
.v2-lightbox[hidden] { display: none; }
.v2-lightbox img { max-width: 100%; max-height: 88vh; width: auto; height: auto; object-fit: contain; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.v2-lightbox button {
  position: absolute; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(250,250,248,.35);
  background: transparent; color: var(--bianco); cursor: pointer; display: grid; place-items: center; transition: background-color .3s, color .3s;
}
.v2-lightbox button:hover { background: var(--bianco); color: var(--grafite); }
.v2-lightbox__close { top: 24px; right: 24px; }
.v2-lightbox__prev { left: 24px; top: 50%; transform: translateY(-50%); }
.v2-lightbox__next { right: 24px; top: 50%; transform: translateY(-50%); }
.v2-lightbox .v2-ico { width: 22px; height: 22px; }

/* ---------- Pagina chatbot ---------- */
.page-ai-chatbot .v2-embed iframe { min-height: 78vh; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1023px) {
  .v2-hero__content { padding-top: calc(var(--header-h) + 28px); }
  .v2-hero--text .v2-hero__content { padding-top: calc(var(--header-h) + 64px); }
  .v2-hero__bottom { grid-template-columns: 1fr; }
  .v2-hero__ctas { grid-column: auto; grid-row: auto; }
  .v2-grid--3, .v2-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-grid--3 .v2-card--media:nth-child(3n+2) { margin-top: 0; }
  .v2-section--split .wrap { grid-template-columns: 1fr; }
  .v2-section--split .v2-sechead { position: static; grid-row: auto; margin-bottom: 28px; }
  .v2-section--split .wrap > :not(.v2-sechead) { grid-column: 1; }
  .v2-row { grid-template-columns: 1fr; }
  .v2-iconblock { grid-template-columns: 48px minmax(0, 1fr); }
  .v2-iconblock__icon { width: 48px; height: 48px; }
  .v2-row__head { position: static; }
  .v2-gallery--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .v2-hero--tall { height: auto; min-height: 88svh; }
  .v2-hero__ctas .btn { flex: 1 1 auto; }
  .v2-grid--2, .v2-grid--3, .v2-grid--4 { grid-template-columns: 1fr; }
  .v2-gallery--2, .v2-gallery--3, .v2-gallery--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-gallery--3 .v2-gallery__item:nth-child(5n+1), .v2-gallery--4 .v2-gallery__item:nth-child(7n+1) { grid-column: span 2; grid-row: span 1; aspect-ratio: 16 / 10; }
  .v2-specs { grid-template-columns: 1fr; }
  .v2-specs__item:nth-child(odd) { border-right: 0; }
  .v2-scroller__item { width: 78vw; }
  .v2-embed iframe { min-height: 320px; }
  .float-btn__label { display: none; }
}

/* Logo usato come miniatura nei contenuti: sempre piccolo e intero */
img.v2-logo-img { width: auto !important; height: auto !important; max-width: 140px !important; max-height: 80px; object-fit: contain !important; margin: 16px auto; transform: none !important; }
.v2-card__media:has(> img.v2-logo-img), .v2-gallery__item:has(> img.v2-logo-img) { display: grid; place-items: center; background: var(--bianco); }

/* Link brevi nell'hero (es. Privacy / Cookie Policy) */
.v2-hero__links { display: flex; flex-wrap: wrap; gap: 10px; order: 5; }
.v2-hero__links a { display: inline-flex; align-items: center; padding: 10px 18px; border: 1px solid currentColor; border-radius: 99px; text-decoration: none; font: 600 .8125rem/1 var(--f-sans); letter-spacing: .06em; transition: background-color .3s, color .3s; }
.v2-hero__links a:hover { background: var(--grafite); color: var(--bianco); border-color: var(--grafite); }
.v2-hero--image .v2-hero__links a:hover { background: var(--bianco); color: var(--grafite); }

/* Hero con titolo solo per i motori di ricerca (pagina chatbot): apertura compatta */
.v2-hero--text:has(.v2-hero__title.sr-only) .v2-hero__content { padding-top: calc(var(--header-h) + var(--util-h) + 8px); padding-bottom: 8px; border-bottom: 0; }

/* Immagini che non si caricano (file mancanti anche sul sito attuale): la tessera sparisce */
.is-broken { display: none !important; }

/* Card interamente cliccabili (link interno che avvolge la card) */
.v2-card > a, .v2-card a:only-child { display: flex; flex-direction: column; gap: 10px; height: 100%; color: inherit; text-decoration: none; }
.v2-card a { text-decoration: none; }
.v2-card p { color: var(--muted); }
.v2-card__tag { font-family: var(--f-mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rovere); }
.v2-card__cta { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; font: 700 .75rem/1 var(--f-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--grafite); }
.v2-card__cta .v2-ico { width: 16px; height: 16px; transition: transform .5s var(--ease-out); }
.v2-card:hover .v2-card__cta .v2-ico { transform: translateX(6px); }
.v2-card:hover h3, .v2-card:hover h4 { color: var(--rovere); transition: color .4s; }
.v2-section--dark .v2-card__cta { color: var(--bianco); }

/* ---------- Contatti: informazioni e orari ---------- */
.page-contatti .v2-row:first-child { grid-template-columns: 1fr; gap: 36px; }
.page-contatti .v2-row:first-child .v2-row__head { position: static; font-size: var(--fs-h2) !important; }
.page-contatti .v2-row:first-child .v2-grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(20px, 3vw, 48px); }
.page-contatti .v2-card:has(.v2-hours) { grid-column: 1 / -1; margin-top: clamp(24px, 3vw, 40px); }
.page-contatti .v2-card--icon h3 { font-size: clamp(1.3rem, 1.8vw, 1.6rem); margin: 0 0 8px; }
.page-contatti .v2-card--icon p { font-size: 1.0625rem; color: var(--grafite); }
.v2-hours { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 !important; margin-top: 14px; max-width: none !important; border-top: 1px solid var(--grafite); }
.v2-hours li { padding: 20px 20px 18px 0 !important; border-right: 1px solid var(--argilla); display: grid; gap: 6px; color: var(--grafite) !important; font-size: 1.125rem; font-weight: 600; letter-spacing: -.01em; transition: background-color .4s var(--ease-out); }
.v2-hours li + li { padding-left: 20px !important; }
.v2-hours li:last-child { border-right: 0; }
.v2-hours li::before { display: none !important; }
.v2-hours li strong { font-family: var(--f-mono); font-weight: 500; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--rovere); }
.v2-hours li.is-today { background: var(--calce); box-shadow: inset 0 3px 0 var(--rovere); }
.v2-hours li.is-closed { color: var(--muted) !important; }
@media (max-width: 1023px) {
  .page-contatti .v2-row:first-child .v2-grid--4 { grid-template-columns: 1fr; }
  .v2-hours { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-hours li:nth-child(2) { border-right: 0; }
  .v2-hours li:nth-child(n+3) { border-top: 1px solid var(--argilla); }
  .v2-hours li:nth-child(3) { padding-left: 0 !important; }
}
@media (max-width: 480px) {
  .v2-hours { grid-template-columns: 1fr; }
  .v2-hours li, .v2-hours li + li { padding: 16px 12px !important; border-right: 0; border-top: 1px solid var(--argilla); }
}
