/* ============================================================
   INTERNE - CSS condiviso delle pagine di CONTENUTO (materie-prime, storia,
   certificazioni, sociale-ambiente). Dipende da tokens.css + main.css.
   Pattern generici riusati da tutte: page-hero split, prosa, step, callout.
   (La pagina Prodotti ha un suo prodotti.css con componenti specifici.)
   ============================================================ */

/* ---- PAGE-HERO - split editoriale testo/foto, fondo --bg, header solido ---- */
.page-hero { padding-block: clamp(3rem, 6vw, 5.5rem) var(--section-y); }
.page-hero__grid {
    display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: clamp(2rem, 5vw, 4.5rem); align-items: center;
}
.page-hero__body { min-width: 0; }
.page-hero__title { margin-top: var(--space-md); max-width: 18ch; }
.page-hero__title .dot { color: var(--bronze); }
.page-lead { margin-top: var(--space-lg); color: var(--text-2); line-height: var(--lh-body); max-width: 56ch; }

.page-hero__figure { position: relative; }
.page-hero__figure img { position: relative; z-index: 1; width: 100%; border-radius: var(--radius); box-shadow: var(--shadow-card); }
.page-hero__figure::before { content: none; } /* cornice offset rimossa (decisione Samu Sess.39): leggeva come box vuoto */
/* variante figura specchiata (cornice in basso-sx) per alternare le pagine */
.page-hero--mirror .page-hero__figure { order: -1; }
.page-hero--mirror .page-hero__figure::before { top: auto; right: auto; bottom: -12px; left: -12px; }

/* ---- PROSA - blocco di testo leggibile, sotto-titoli, paragrafi ---- */
.prose-section { }
.prose { max-width: var(--container-prose); }
.prose > * + * { margin-top: var(--space-md); }
.prose p { color: var(--text-2); line-height: var(--lh-prose); }
.prose h2, .prose .t-heading { color: var(--text-1); margin-top: var(--space-xl); }
.prose h2:first-child, .prose .t-heading:first-child { margin-top: 0; }
.prose ul { padding-left: 1.25em; }
.prose li { list-style: disc; color: var(--text-2); line-height: var(--lh-prose); }
.prose li + li { margin-top: 0.4rem; }

/* ---- STEP - lista processo (numero bronzo + testo), es. protocollo ingresso ---- */
.steps { display: grid; gap: var(--space-md); margin-top: var(--space-lg); counter-reset: step; }
.steps li {
    display: flex; align-items: baseline; gap: var(--space-md);
    padding-bottom: var(--space-md); border-bottom: 1px solid var(--border);
}
.steps li:last-child { border-bottom: none; padding-bottom: 0; }
.steps li::before {
    counter-increment: step; content: counter(step, decimal-leading-zero);
    font-family: var(--font-accent); font-size: 1.4rem; color: var(--bronze);
    line-height: 1; flex-shrink: 0; min-width: 2ch;
}
.steps li strong { font-weight: 600; color: var(--text-1); }

/* ---- CONTENT - layout editoriale a piena larghezza (pagine interne).
       Risolve il "prose 720px allineato a sinistra" → margine destro morto.
       Scoped a .content-section: NON tocca .prose (usato ancora da sociale). ---- */
.content-section > .container > * + * { margin-top: clamp(2.5rem, 5vw, 4rem); }

/* intro: titolo sx / paragrafo dx (riempie la larghezza, come home) */
.content-head {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: end;
}
.content-head__lead { max-width: 30rem; }
.content-head__lead .t-heading { margin-bottom: 1.35rem; }
.content-head__lead .rule-draw { margin-bottom: 0; }
.content-head__intro { color: var(--text-2); line-height: var(--lh-prose); max-width: 40rem; }

/* (content-split / content-band / content-note rimossi 23/07: orfani dopo la
   migrazione di sociale ×4 al design Claude Design - nessuna pagina li usa più) */

@media (max-width: 860px) {
    .content-head { grid-template-columns: 1fr; gap: 1.25rem; align-items: start; }
    .content-head__lead { max-width: none; }
}

/* ---- CALLOUT - pannello evidenziato (conformità normativa, nota).
       Bordo pieno 1px + fondo bronzo-light (niente side-stripe: border-left colorato = anti-slop). ---- */
.callout {
    border: 1px solid var(--border);
    background: var(--bronze-light);
    padding: var(--space-lg);
    border-radius: var(--radius);
}
.callout__title { font-size: var(--fs-small); font-weight: 700; letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--bronze-dark); margin-bottom: var(--space-sm); }
.callout ul { display: grid; gap: var(--space-sm); }
.callout li { color: var(--text-2); line-height: var(--lh-body); padding-left: var(--space-md); position: relative; }
.callout li::before { content: '–'; position: absolute; left: 0; color: var(--bronze); }
.callout p { color: var(--text-2); line-height: var(--lh-body); }
.callout p + p { margin-top: var(--space-sm); }

/* ---- SECTION--DARK - override colori per isola scura nelle pagine di contenuto
       (ritmo cromatico come la band home). .t-label e .content-head__intro hanno
       color scuro esplicito → vanno schiariti; .t-heading/.rule-draw già ok. ---- */
.section--dark .t-label { color: var(--bronze-on-dark); }
.section--dark .content-head__intro { color: var(--on-dark-2); }

/* (pledge / pledge-grid rimossi 23/07: orfani dopo la migrazione di sociale ×4) */

/* ---- CERT GRID - riquadri certificati cliccabili (pagina Certificazioni) ---- */
.page-hero__intro { max-width: 64ch; }
@media (max-width: 900px) {
    .page-hero__grid { grid-template-columns: 1fr; gap: clamp(1.75rem, 6vw, 2.5rem); }
    .page-hero__figure { order: -1; }
    .page-hero__title { max-width: 20ch; }
    .page-hero__figure::before, .page-hero--mirror .page-hero__figure::before { top: -10px; right: -10px; bottom: auto; left: auto; }
}

/* Conformità - callout + nota LME con label (colonne parallele, curate) */
.mp-compliance__grid {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start;
}
.mp-compliance__note-label {
    font-size: var(--fs-small); font-weight: 700; letter-spacing: var(--ls-label);
    text-transform: uppercase; color: var(--bronze-dark); margin-bottom: var(--space-sm);
}
.mp-compliance__note p:last-child { color: var(--text-2); line-height: var(--lh-prose); }

@media (max-width: 860px) {
    .protocol-flow { grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 5vw, 2.5rem); }
    .protocol-flow__step:not(:last-child)::after { display: none; }
    .mp-compliance__grid { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* ============================================================
   SOCIALE-E-AMBIENTE - implementazione FEDELE del design diretto da Samu
   su Claude Design (progetto "Pagina operatori: design scelte", 23/07/2026).
   Struttura: hero full-bleed operai → intro su diagonale + trittico
   ufficio/fonderia/officina (visualizza il lead) → sicurezza scura a righe
   + foto acqua full-width → pannello ambiente SOVRAPPOSTO alla foto
   (l'acqua lega sicurezza e ambiente) → comunità card + citazione → CTA.
   Niente radius sulle foto: spigoli vivi come nel design.
   ============================================================ */

/* Hero full-bleed: foto operai, titolo bianco in basso a sx, caption a dx */
.se-hero { position: relative; height: clamp(28rem, 44.5vw, 40rem); background: var(--dark-deep); }
.se-hero > img {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; object-position: 50% 50%;
}
.se-hero::before {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(90deg, rgba(16,13,11,.82) 0%, rgba(16,13,11,.32) 52%, rgba(16,13,11,.04) 100%);
}
.se-hero::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(16,13,11,.1) 0%, rgba(16,13,11,0) 35%, rgba(16,13,11,.6) 100%);
}
.se-hero__bar { position: absolute; z-index: 1; inset-inline: 0; bottom: clamp(1.75rem, 4.2vw, 3.75rem); }
.se-hero__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 3rem; }
.se-hero__title {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(2.2rem, 4.45vw, 4rem); line-height: 1.08;
    letter-spacing: -0.023em; color: var(--on-dark); max-width: 52.5rem;
}
.se-hero__cap { font-size: var(--fs-small); color: var(--on-dark-2); white-space: nowrap; padding-bottom: 0.5rem; }

/* Intro: lead grande + fiducia su diagonale (colonna dx più bassa) */
.se-intro { padding-block: clamp(4rem, 7.8vw, 7rem) clamp(4rem, 7.2vw, 6.5rem); }
.se-intro__grid {
    display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: clamp(3rem, 6.6vw, 6rem); align-items: start;
}
.se-intro__lead {
    font-family: var(--font-display); font-size: clamp(1.35rem, 2vw, 1.8125rem);
    line-height: 1.5; letter-spacing: -0.01em; color: var(--text-1);
    margin-top: clamp(1.5rem, 2.5vw, 2.25rem);
}
.se-intro__aside { margin-top: clamp(0rem, 10.4vw, 9.375rem); }
.se-intro__aside .t-heading { font-size: clamp(1.3rem, 1.9vw, 1.6875rem); margin-bottom: 1.1rem; }
.se-intro__aside p { color: var(--text-2); line-height: var(--lh-prose); }

/* Dittico ufficio / fonderia: visualizza letteralmente il lead */
.se-trio {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: clamp(1.25rem, 2vw, 1.75rem); margin-top: clamp(3.5rem, 6.6vw, 6rem);
    align-items: start; list-style: none;
}
.se-trio__item { margin: 0; }
.se-trio__item:nth-child(2) { margin-top: clamp(2rem, 3.9vw, 3.5rem); }
.se-trio__item img { display: block; width: 100%; height: clamp(16rem, 27.8vw, 25rem); object-fit: cover; }
.se-trio__meta {
    border-top: 1px solid var(--border); margin-top: 1rem; padding-top: 0.875rem;
    display: flex; justify-content: space-between; gap: 0.75rem; align-items: baseline;
}
.se-trio__label {
    font-weight: 700; font-size: var(--fs-small); letter-spacing: 0.13em;
    text-transform: uppercase; color: var(--text-1); white-space: nowrap;
}
.se-trio__cap { font-size: var(--fs-small); color: var(--text-2); text-align: right; }

/* Sicurezza: scuro, titolo sx / quattro righe dx (hairline + trattino bronzo) */
.se-safety { padding-top: clamp(4rem, 7.8vw, 7rem); }
.se-safety__grid {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: clamp(3rem, 7.6vw, 6.875rem); align-items: start;
}
.se-safety__title {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(1.875rem, 3.05vw, 2.75rem); line-height: 1.12;
    letter-spacing: -0.023em; color: var(--on-dark);
}
.se-safety__intro { margin-top: clamp(1.25rem, 1.8vw, 1.625rem); font-size: 1.0625rem; line-height: var(--lh-prose); color: var(--on-dark-2); max-width: 48ch; }
.se-rows { list-style: none; margin-top: 0.5rem; }
.se-rows li {
    border-top: 1px solid var(--border-dark);
    padding-block: clamp(1.25rem, 1.8vw, 1.625rem);
    display: flex; gap: clamp(1rem, 1.5vw, 1.375rem); align-items: flex-start;
    font-size: clamp(1rem, 1.25vw, 1.125rem); line-height: 1.55; color: var(--on-dark);
}
.se-rows li:last-child { border-bottom: 1px solid var(--border-dark); }
.se-rows li::before {
    content: ''; width: 1.625rem; height: 2px; background: var(--bronze-on-dark);
    flex-shrink: 0; margin-top: 0.75rem;
}

/* Foto acqua a tutta larghezza viewport, in coda alla sezione scura */
.se-water {
    position: relative; margin-top: clamp(3.5rem, 7.2vw, 6.5rem);
    margin-inline: calc(50% - 50vw);
    height: clamp(18.75rem, 30.6vw, 27.5rem);
}
.se-water img { display: block; width: 100%; height: 100%; object-fit: cover; }
.se-water::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(26,22,19,.45) 0%, rgba(26,22,19,0) 30%, rgba(16,13,11,.55) 100%);
}
.se-water__cap {
    position: absolute; z-index: 1; right: clamp(1.25rem, 3.9vw, 3.5rem); bottom: 1.375rem;
    font-size: var(--fs-small); color: var(--on-dark-2); text-align: right;
}

/* Ambiente: pannello chiaro SOVRAPPOSTO alla foto acqua */
.se-ambient { background: var(--surface); padding-bottom: clamp(4rem, 7.8vw, 7rem); }
.se-ambient__panel {
    position: relative; z-index: 1;
    width: min(47.5rem, 100%);
    margin-top: -7.5rem;
    background: var(--bg); border: 1px solid var(--border);
    padding: clamp(2.5rem, 4.5vw, 4rem) clamp(1.625rem, 5vw, 4.5rem);
}
.se-ambient__panel .t-heading { font-size: clamp(1.7rem, 2.65vw, 2.375rem); }
.se-ambient__lead { margin-top: clamp(1.25rem, 1.8vw, 1.625rem); font-size: 1.125rem; line-height: 1.65; color: var(--text-1); }
.se-ambient__rest { margin-top: 1.125rem; font-size: 1rem; line-height: var(--lh-prose); color: var(--text-2); }

/* Comunità: fondo bronzo-chiaro, card coi verbi come kicker, citazione finale */
.se-comm { background: var(--bronze-light); padding-block: clamp(4rem, 7.2vw, 6.5rem) clamp(4rem, 7.8vw, 7rem); }
.se-comm__head {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(2rem, 6.6vw, 6rem); align-items: end;
    margin-bottom: clamp(2.25rem, 4.2vw, 3.75rem);
}
.se-comm__title {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(1.875rem, 3.05vw, 2.75rem); line-height: 1.12;
    letter-spacing: -0.023em; color: var(--text-1);
}
.se-comm__intro { font-size: 1.0625rem; line-height: var(--lh-prose); color: var(--text-2); margin-bottom: 0.375rem; }
.se-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(0.875rem, 1.7vw, 1.5rem); list-style: none; }
.se-cards li { background: var(--bg); border: 1px solid var(--border); padding: clamp(1.75rem, 2.5vw, 2.25rem) clamp(1.5rem, 2.5vw, 2.25rem) clamp(2rem, 2.9vw, 2.625rem); }
.se-cards__kicker {
    font-weight: 700; font-size: var(--fs-small); letter-spacing: 0.107em;
    text-transform: uppercase; color: var(--bronze); line-height: 1.55;
}
.se-cards__dash { display: block; width: 2rem; height: 2px; background: var(--bronze); margin: 1.125rem 0 1.25rem; }
.se-cards__name {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(1.3125rem, 1.75vw, 1.5625rem); line-height: 1.3;
    letter-spacing: -0.016em; color: var(--text-1);
}
.se-comm__quote {
    margin: clamp(3.25rem, 5.6vw, 5rem) auto 0; max-width: 55rem; text-align: center;
    font-family: var(--font-display); font-style: italic; font-weight: 400;
    font-size: clamp(1.3125rem, 1.8vw, 1.625rem); line-height: 1.55;
    letter-spacing: -0.012em; color: var(--text-1);
}

@media (max-width: 860px) {
    /* aspect-ratio invece dell'altezza vw-clamp: la foto mani (1382x773, ~16:9)
       con altezza fissa portrait-oriented tagliava le mani ai bordi laterali */
    .se-hero { aspect-ratio: 16 / 9; height: auto; }
    .se-hero::before { background: none; }
    .se-hero::after { background: linear-gradient(180deg, rgba(16,13,11,.2) 0%, rgba(16,13,11,0) 35%, rgba(16,13,11,.88) 100%); }
    .se-hero__row { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
    .se-hero__cap { font-size: 0.875rem; padding-bottom: 0; align-self: flex-end; }
    .se-intro__grid { grid-template-columns: 1fr; gap: 0; }
    .se-intro__aside { margin-top: 3rem; }
    .se-trio { grid-template-columns: 1fr; gap: 2.75rem; margin-top: 3.5rem; }
    .se-trio__item:nth-child(2) { margin-top: 0; }
    .se-trio__item img { height: clamp(13rem, 59vw, 14.375rem); }
    .se-safety__grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .se-water__cap { bottom: auto; top: 0.875rem; right: var(--container-pad); }
    .se-ambient__panel { margin-top: -4rem; }
    .se-comm__head { grid-template-columns: 1fr; gap: 1.125rem; align-items: start; margin-bottom: 2.25rem; }
    .se-cards { grid-template-columns: 1fr; }
    .se-comm__quote { text-align: center; }
}


/* ============================================================
   CERTIFICAZIONI v2 - implementazione FEDELE del design B di Samu
   (Claude Design, 24/07). Trust-center: righe-certificato compatte con badge
   piccolo, anteprima con zoom al passaggio, PDF dietro link; sezione scura
   "Cosa significa per te". Le vecchie .cert-* restano finché EN/DE/FR non
   migrano.
   ============================================================ */

.b2-head { padding-block: clamp(2rem, 3.9vw, 2.375rem) clamp(1.5rem, 3.1vw, 2.125rem); }
.b2-head__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 4rem; }
.b2-title {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(2rem, 3.2vw, 2.875rem); line-height: 1.1;
    letter-spacing: var(--ls-heading); color: var(--text-1); white-space: nowrap;
    margin-top: 0.625rem;
}
.b2-lead { max-width: 640px; font-size: 1rem; line-height: 1.6; color: var(--text-2); text-wrap: pretty; margin-bottom: 0.375rem; }
.b2-h2 {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(1.5rem, 2.1vw, 1.875rem); line-height: 1.2;
    letter-spacing: -0.01em; color: var(--text-1);
}

.b2-certs { border-top: 1px solid var(--border); padding-block: clamp(1.75rem, 3.2vw, 2.25rem) clamp(2rem, 3.9vw, 2.75rem); }
.b2-certs__head {
    display: flex; justify-content: space-between; align-items: flex-end;
    gap: 3rem; margin-bottom: 1.375rem;
}
.b2-certs__head .t-label { margin-bottom: 0.5rem; }
.b2-certs__intro { max-width: 480px; font-size: 0.9375rem; line-height: 1.6; color: var(--text-2); text-wrap: pretty; }

.b2-rows { list-style: none; display: flex; flex-direction: column; gap: 0.875rem; margin: 0; padding: 0; }
.b2-cert {
    display: grid; grid-template-columns: 64px minmax(0, 1fr) auto auto;
    gap: 1.625rem; align-items: center;
    background: var(--bg); border: 1px solid var(--border);
    padding: 1.25rem 1.625rem;
    transition: transform var(--dur-fast) var(--ease-expo), box-shadow var(--dur-fast) var(--ease-expo);
}
.b2-cert:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(36, 31, 27, 0.08); }
.b2-cert__badge { width: 56px; height: 56px; object-fit: contain; }
@keyframes b2-float { 0%, 100% { transform: none; } 50% { transform: translateY(-5px); } }
.b2-cert__badge { animation: b2-float 5s ease-in-out infinite; }
.b2-cert__norm { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.25rem, 1.8vw, 1.625rem); letter-spacing: -0.008em; color: var(--text-1); margin: 0; }
.b2-cert__desc { font-size: 0.9375rem; color: var(--text-2); margin: 0.2rem 0 0; }
.b2-cert__thumb {
    height: 92px; width: auto; border: 1px solid var(--border); background: var(--bg);
    transition: transform 0.3s var(--ease-expo), box-shadow 0.3s var(--ease-expo);
    transform-origin: center; cursor: zoom-in; position: relative;
}
.b2-cert__thumb:hover { transform: scale(2.1); box-shadow: 0 14px 34px rgba(36, 31, 27, 0.3); z-index: 5; }
.b2-cert__dl {
    font-size: var(--fs-small); font-weight: 700; text-decoration: none;
    letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap;
    transition: letter-spacing 0.25s ease;
}
.b2-cert__dl:hover { letter-spacing: 0.11em; }

.b2-means { padding-block: clamp(2.25rem, 4.2vw, 3.25rem) clamp(2.5rem, 4.5vw, 3.5rem); }
.b2-means__title { color: var(--on-dark); margin-top: 0.5rem; margin-bottom: clamp(1.25rem, 2.4vw, 1.875rem); }
.b2-means__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem; }
.b2-means__item { border-top: 1px solid var(--border-dark); padding-top: 1.125rem; }
.b2-means__name { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.2rem, 1.55vw, 1.375rem); color: var(--on-dark); margin: 0 0 0.5rem; }
.b2-means__item p { margin: 0; font-size: 0.9375rem; line-height: 1.65; color: var(--on-dark-2); text-wrap: pretty; }

@media (max-width: 900px) {
    .b2-head__row, .b2-certs__head { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
    .b2-title { white-space: normal; }
    /* card mobile del design: badge+testo, poi riga "Certificato da TÜV Italia" + link;
       niente anteprima (lo zoom hover non esiste su touch) */
    .b2-cert { grid-template-columns: 44px minmax(0, 1fr); gap: 0.875rem; padding: 1rem; align-items: center; }
    .b2-cert__badge { width: 44px; height: 44px; }
    .b2-cert__thumb { display: none; }
    .b2-cert__dl { grid-column: 1 / -1; justify-self: end; border-top: 1px solid var(--border); width: 100%; text-align: right; padding-top: 0.875rem; margin-top: 0.25rem; }
    .b2-means__grid { grid-template-columns: 1fr; gap: 1.25rem; }
}


/* ============================================================
   MATERIE v2 - implementazione FEDELE del design F di Samu (Claude Design,
   24/07). Hero split, protocollo a 4 card FASE con linea bronzo che si
   disegna, split scuro fornitori, conformità + LME. Le vecchie .mp-* restano
   finché EN/DE/FR non migrano.
   ============================================================ */

.f2-hero { display: grid; grid-template-columns: 1fr 1fr; }
.f2-hero__text {
    padding-left: max(var(--container-pad), calc((100vw - var(--container)) / 2 + var(--container-pad)));
    padding-right: clamp(2rem, 4.4vw, 4rem);
    padding-block: clamp(2.5rem, 4.4vw, 4rem) clamp(2.25rem, 3.9vw, 3.5rem);
    display: flex; flex-direction: column; justify-content: center;
}
.f2-title {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(2.25rem, 3.6vw, 3.25rem); line-height: 1.08;
    letter-spacing: var(--ls-heading); color: var(--text-1);
    margin: 0.75rem 0 1.125rem;
}
.f2-lead { max-width: 440px; font-size: 1rem; line-height: 1.65; color: var(--text-2); text-wrap: pretty; }
.f2-hero__figure { margin: 0; min-height: clamp(18rem, 32vw, 28.75rem); }
.f2-hero__figure img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; }
.f2-h2 {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(1.5rem, 2.4vw, 2.125rem); line-height: 1.15;
    letter-spacing: -0.012em; color: var(--text-1);
}

.f2-proto { border-top: 1px solid var(--border); padding-block: clamp(2.25rem, 3.6vw, 3.25rem) clamp(2.5rem, 3.9vw, 3.5rem); }
.f2-proto__head {
    display: flex; justify-content: space-between; align-items: flex-end;
    gap: 4rem; margin-bottom: 1.75rem;
}
.f2-proto__head .f2-h2 { max-width: 440px; }
.f2-proto__intro { max-width: 520px; font-size: 0.9375rem; line-height: 1.65; color: var(--text-2); text-wrap: pretty; }
.f2-fasi { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.f2-fase {
    background: var(--bg); border: 1px solid var(--border);
    padding: 1.25rem 1.375rem 1.375rem;
    transition: transform var(--dur-fast) var(--ease-expo), box-shadow var(--dur-fast) var(--ease-expo);
}
.f2-fase:hover { transform: translateY(-3px); box-shadow: 0 8px 18px rgba(36, 31, 27, 0.08); }
.f2-fase__kicker { display: block; font-size: var(--fs-small); font-weight: 700; color: var(--bronze); letter-spacing: 0.07em; text-transform: uppercase; }
.f2-fase__line {
    display: block; height: 2px; margin: 0.5rem 0 0.75rem;
    background: linear-gradient(90deg, var(--bronze), var(--bronze-on-dark));
    transform-origin: left;
    transition: transform var(--dur-slow) var(--ease-expo) calc(var(--d, 0s) + 0.15s);
}
.motion-ready .f2-fase .f2-fase__line { transform: scaleX(0); }
.motion-ready .f2-fase.in .f2-fase__line { transform: scaleX(1); }
.motion-failed .f2-fase .f2-fase__line { transform: scaleX(1); }
@media (prefers-reduced-motion: reduce) {
    .motion-ready .f2-fase .f2-fase__line { transform: scaleX(1); transition: none; }
}
.f2-fase__name { display: block; font-family: var(--font-display); font-weight: 400; font-size: 1.3125rem; color: var(--text-1); }

.f2-supp { display: grid; grid-template-columns: 1fr 1fr; }
.f2-supp__figure { margin: 0; min-height: clamp(18rem, 32vw, 28.75rem); overflow: hidden; }
.f2-supp__figure img { display: block; width: 100%; height: 100%; min-height: inherit; object-fit: cover; }
.f2-supp__body {
    padding: clamp(2.5rem, 4.4vw, 4rem);
    padding-right: max(var(--container-pad), calc((100vw - var(--container)) / 2 + var(--container-pad)));
    display: flex; flex-direction: column; justify-content: center; gap: 1rem;
}
.f2-supp__title { color: var(--on-dark); max-width: 420px; }
.f2-supp__body p { margin: 0; max-width: 470px; font-size: 0.9375rem; line-height: 1.7; color: var(--on-dark-2); text-wrap: pretty; }

.f2-legal { padding-block: clamp(2.5rem, 3.9vw, 3.5rem) clamp(2.5rem, 4.2vw, 3.75rem); }
.f2-legal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 4.4vw, 4rem); align-items: start; }
.f2-conf { background: var(--bronze-light); border: 1px solid var(--border); padding: 1.75rem 2rem 1.875rem; }
.f2-conf__kicker, .f2-lme__kicker { margin-bottom: 1rem; color: var(--bronze); }
.f2-conf__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.875rem; }
.f2-conf__list li { position: relative; padding-left: 1.5rem; font-size: 0.9375rem; line-height: 1.6; color: var(--text-1); }
.f2-conf__list li::before { content: '-'; position: absolute; left: 0; color: var(--bronze); }
.f2-lme__text { margin: 0; font-size: 0.9375rem; line-height: 1.7; color: var(--text-2); text-wrap: pretty; }

@media (max-width: 900px) {
    .f2-hero { grid-template-columns: 1fr; }
    .f2-hero__text { padding-inline: var(--container-pad); padding-block: 1.625rem 1.5rem; }
    .f2-hero__figure { min-height: clamp(10rem, 46vw, 12rem); }
    .f2-proto__head { flex-direction: column; align-items: flex-start; gap: 0.625rem; margin-bottom: 1.125rem; }
    .f2-fasi { grid-template-columns: 1fr 1fr; gap: 0.625rem; }
    .f2-fase { padding: 0.875rem 1rem; }
    .f2-fase__name { font-size: 1.125rem; }
    .f2-supp { grid-template-columns: 1fr; }
    .f2-supp__figure { min-height: clamp(10rem, 49vw, 12rem); }
    .f2-supp__body { padding: 1.625rem var(--container-pad) 2rem; }
    .f2-legal__grid { grid-template-columns: 1fr; gap: 1.5rem; }
}

/* ============================================================
   FORM ROTTAMI - Blocco 7 (10/09/2026). Sezione "Hai rottami..." di
   materie-prime.php: card form dedicata. Classi .ct-* duplicate da
   contatti.css perché questa pagina carica interne.css, non contatti.css.
   ============================================================ */
.f2-form { border-top: 1px solid var(--border); }
.f2-form__inner { max-width: 640px; }
.f2-form__head { margin-bottom: var(--space-lg); }
.f2-form__hint { margin-top: var(--space-xs); color: var(--text-2); font-size: .95rem; }
.f2-form .f2-h2 { text-wrap: balance; }
.f2-conf__cta { margin-top: 1.5rem; }

.ct-form-wrap {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: clamp(1.5rem, 3.5vw, 2.5rem);
    box-shadow: var(--shadow-card, 0 1px 2px rgba(0,0,0,.04));
}
.f2-form .ct-input { background: var(--bg); border-color: oklch(65% 0.01 50); }

.req { color: var(--bronze); }
.ct-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-md); }
.ct-row + .ct-row, .ct-form > .ct-field, .ct-row + .ct-field { margin-top: var(--space-md); }
.ct-field { display: flex; flex-direction: column; }
.ct-label { font-size: .9rem; font-weight: 600; color: var(--text-1); margin-bottom: var(--space-2xs); }
.ct-input {
    font-family: inherit; font-size: 1rem; color: var(--text-1);
    background: var(--surface);
    border: 1px solid var(--border); border-radius: var(--radius);
    padding: .7rem .85rem;
    transition: border-color var(--dur-fast) var(--ease-expo), box-shadow var(--dur-fast) var(--ease-expo), background var(--dur-fast) var(--ease-expo);
    width: 100%;
}
.ct-input::placeholder { color: var(--text-3, var(--text-2)); opacity: .7; }
.ct-input:hover { border-color: var(--text-2); }
.ct-input:focus {
    outline: none; border-color: var(--bronze); background: var(--bg);
    box-shadow: 0 0 0 3px color-mix(in oklch, var(--bronze) 18%, transparent);
}
.ct-textarea { resize: vertical; min-height: 6rem; line-height: var(--lh-body); }
.ct-select {
    appearance: none; -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20' fill='none' stroke='%23985a19' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right .85rem center;
    padding-right: 2.5rem;
}
.ct-input.is-invalid { border-color: #b3261e; background: color-mix(in oklch, #b3261e 5%, var(--bg)); }
.ct-input.is-invalid:focus { box-shadow: 0 0 0 3px color-mix(in oklch, #b3261e 16%, transparent); }
.ct-error { margin: .4rem 0 0; font-size: .875rem; line-height: 1.4; color: #8c1d18; font-weight: 500; }
.ct-error[hidden] { display: none; }
.ct-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ct-submit { margin-top: var(--space-lg); width: 100%; justify-content: center; }
.ct-submit__text, .ct-submit__loading { display: inline-flex; align-items: center; gap: .5rem; }
.ct-submit__loading { display: none; }
.ct-submit svg { width: 20px; height: 20px; transition: transform var(--dur-fast) var(--ease-expo); }
.ct-submit:hover svg { transform: translateX(4px); }
.ct-submit.is-loading .ct-submit__text { display: none; }
.ct-submit.is-loading .ct-submit__loading { display: inline-flex; }
.ct-submit.is-loading { cursor: progress; opacity: .85; }
.ct-spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid color-mix(in oklch, currentColor 30%, transparent); border-top-color: currentColor; animation: ct-spin .6s linear infinite; }
@keyframes ct-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ct-spinner { animation-duration: 1.4s; } }
.ct-privacy { margin-top: var(--space-md); font-size: .875rem; color: var(--text-2); }
.ct-privacy a { color: var(--bronze); text-decoration: underline; border-bottom: 1px solid transparent; }
.ct-privacy a:hover { border-bottom-color: currentColor; }
.ct-alert { margin-top: var(--space-md); padding: .85rem 1rem; border-radius: var(--radius); font-size: .95rem; line-height: var(--lh-body); }
.ct-alert[hidden] { display: none; }
.ct-alert--success { background: color-mix(in oklch, var(--bronze) 10%, var(--bg)); border: 1px solid var(--bronze); color: var(--text-1); }
.ct-alert--error { background: color-mix(in oklch, #b3261e 8%, var(--bg)); border: 1px solid #b3261e; color: #7a1a15; }

@media (max-width: 560px) {
    .ct-row { grid-template-columns: 1fr; gap: var(--space-md); }
}
/* Il containing block della foto e del velo: senza questo l'immagine absolute
   si ancora al body e copre l'intera prima schermata. */
.g2-hero { position: relative; overflow: hidden; background: var(--dark); color: var(--on-dark); }
.g2-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.32; }
.g2-hero::after {
    content: ''; position: absolute; inset: 0; pointer-events: none;
    background: linear-gradient(180deg, rgba(16, 13, 11, 0.2) 0%, #100d0b 96%);
}
.g2-hero__inner { position: relative; z-index: 1; padding-block: clamp(2.75rem, 5.3vw, 4.75rem) clamp(2.25rem, 4.4vw, 4rem); }
.g2-hero .t-label { color: var(--bronze-on-dark); }
.g2-title {
    font-family: var(--font-display); font-weight: 400;
    font-size: clamp(2.125rem, 3.75vw, 3.375rem); line-height: 1.08;
    letter-spacing: var(--ls-heading); color: var(--on-dark);
    margin: 0.75rem 0 0.5rem;
}
.g2-range {
    font-family: var(--font-accent); font-style: italic; font-weight: 400;
    font-size: clamp(1.5rem, 2.4vw, 2.125rem); line-height: 1.2;
    color: var(--bronze-on-dark);
}
.g2-lead { margin-top: 1.125rem; max-width: 560px; font-size: 1rem; line-height: 1.65; color: var(--on-dark-2); text-wrap: pretty; }

.g2-line-wrap { padding-block: clamp(2rem, 3.9vw, 3.5rem) clamp(2rem, 3.3vw, 3rem); }
.g2-line { position: relative; }
/* Spina in due strati: la base è SEMPRE visibile (nessun browser resta senza
   linea), il fronte bronzo si disegna allo scroll come enhancement. */
.g2-spine {
    position: absolute; left: 50%; top: 10px; bottom: 10px; width: 2px; margin-left: -1px;
    background: var(--border);
}
.g2-spine::after {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(180deg, var(--bronze), var(--border));
    transform-origin: top;
}
/* La timeline di scroll è quella della lista tappe, non del documento: con
   scroll() il fronte finiva a metà pagina e le ultime tappe restavano scoperte.
   entry 50% → exit 50% = il fronte segue il centro dello schermo. */
@supports (animation-timeline: view()) {
    @keyframes g2-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }
    .g2-line { view-timeline-name: --g2-line; view-timeline-axis: block; }
    .g2-spine::after {
        animation: g2-grow linear both;
        animation-timeline: --g2-line;
        animation-range: entry 50% exit 50%;
    }
}
@media (prefers-reduced-motion: reduce) {
    .g2-spine::after { animation: none; transform: none; }
}
.g2-tappe { list-style: none; margin: 0; padding: 0; }
.g2-tappa {
    position: relative;
    display: grid; grid-template-columns: 1fr 72px 1fr; align-items: start;
    margin-bottom: 10px;
}
.g2-dot {
    grid-column: 2; justify-self: center; margin-top: 6px;
    width: 14px; height: 14px; border-radius: 50%;
    background: var(--bronze); border: 3px solid var(--surface);
}
@keyframes g2-pulse {
    0% { box-shadow: 0 0 0 0 rgba(138, 90, 51, 0.4); }
    70% { box-shadow: 0 0 0 9px rgba(138, 90, 51, 0); }
    100% { box-shadow: 0 0 0 0 rgba(138, 90, 51, 0); }
}
.g2-dot { animation: g2-pulse 3s ease-out infinite; }
.g2-tappa:nth-child(2n) .g2-dot { animation-delay: 0.4s; }
.g2-tappa:nth-child(3n) .g2-dot { animation-delay: 0.8s; }
.g2-tappa__body { max-width: 480px; padding-bottom: 30px; }
.g2-tappa--l .g2-tappa__body { grid-column: 1; grid-row: 1; justify-self: end; text-align: right; }
.g2-tappa--r .g2-tappa__body { grid-column: 3; grid-row: 1; }
.g2-tappa--l .g2-dot, .g2-tappa--r .g2-dot { grid-row: 1; }
.g2-year {
    font-family: var(--font-accent); font-weight: 400;
    font-size: clamp(1.5rem, 2.6vw, 2.375rem); line-height: 1; color: var(--bronze);
    font-feature-settings: "lnum" 1;
}
.g2-tappa--big .g2-tappa__body { max-width: 520px; }
.g2-tappa--big .g2-year { font-size: clamp(2.5rem, 4.7vw, 4.25rem); }
.g2-tappa__title { font-family: var(--font-ui); font-size: 1rem; font-weight: 700; color: var(--text-1); margin: 0.45rem 0 0.3rem; }
.g2-tappa--big .g2-tappa__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.3rem, 1.75vw, 1.5625rem); margin: 0.5rem 0 0.625rem; }
.g2-tappa__text { margin: 0; font-size: var(--fs-small); line-height: 1.65; color: var(--text-2); text-wrap: pretty; }
.g2-tappa__text + .g2-tappa__text { margin-top: 0.75rem; }
/* Anno e titolo restano allineati verso la spina, il corpo del testo no:
   con le tappe lunghe (1981-86 ha tre paragrafi) il margine sinistro
   frastagliato costringe l'occhio a ricercare l'inizio di ogni riga. */
.g2-tappa--l .g2-tappa__text { text-align: left; }
.g2-tappa--big .g2-tappa__text { font-size: 0.9375rem; line-height: 1.7; }
.g2-tappa__figure { margin: 0.875rem 0 0; }
/* Foto delle tappe INTERE: prima un'altezza fissa con object-fit:cover
   ritagliava circa il 40% dell'inquadratura. Sono foto d'archivio che il
   cliente considera importanti, quindi comanda la foto, non il riquadro. */
.g2-tappa__figure img {
    display: block; width: 100%; height: auto;
    border: 1px solid var(--border);
    transition: transform 0.5s var(--ease-expo);
}
.g2-tappa__figure:hover img { transform: scale(1.02); }
.g2-tappa__cap { font-size: var(--fs-small); color: var(--text-2); margin-top: 0.45rem; }

.g2-quote {
    position: relative; max-width: 760px; margin: 6px auto 36px;
    background: var(--bronze-light); border: 1px solid var(--border);
    padding: clamp(1.25rem, 2.6vw, 1.875rem) clamp(1rem, 3.3vw, 2.375rem) clamp(1.125rem, 2.4vw, 1.75rem);
}
.g2-quote__year { font-family: var(--font-accent); font-style: italic; font-size: clamp(1.375rem, 2.1vw, 1.875rem); line-height: 1; color: var(--bronze); margin-bottom: 0.5rem; }
.g2-quote__text {
    margin: 0 0 0.75rem;
    font-family: var(--font-display); font-style: italic; font-weight: 400;
    font-size: clamp(1.125rem, 1.6vw, 1.4375rem); line-height: 1.5;
    color: var(--text-1); text-wrap: pretty;
}
.g2-quote__cite { color: var(--bronze); margin: 0; }

.g2-today { padding-block: clamp(1.875rem, 3.1vw, 2.75rem) clamp(2.25rem, 3.3vw, 3rem); }
.g2-today__grid { display: grid; grid-template-columns: auto 1fr; gap: clamp(1.75rem, 3.3vw, 3rem); align-items: center; }
.g2-today__year {
    font-family: var(--font-accent); font-style: italic; font-weight: 400;
    font-size: clamp(2.75rem, 4.4vw, 4rem); line-height: 1; color: var(--bronze-on-dark);
}
.g2-today__title { font-family: var(--font-display); font-weight: 400; font-size: clamp(1.3rem, 1.8vw, 1.625rem); color: var(--on-dark); margin-top: 0.5rem; }
.g2-today__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; max-width: 900px; }
.g2-today__cols p { margin: 0; font-size: 0.9375rem; line-height: 1.7; color: var(--on-dark-2); text-wrap: pretty; }

@media (max-width: 860px) {
    .g2-spine { left: 6px; margin-left: 0; }
    .g2-tappa { display: block; margin-bottom: 0; }
    .g2-tappa__body, .g2-tappa--l .g2-tappa__body, .g2-tappa--r .g2-tappa__body {
        max-width: none; text-align: left; padding: 0 0 1.5rem 2rem;
    }
    .g2-dot { position: absolute; left: 0; top: 5px; margin-top: 0; border-color: var(--surface); }
    .g2-tappa { position: relative; }
    .g2-quote { margin: 0 0 1.5rem 2rem; }
    .g2-today__grid { grid-template-columns: 1fr; gap: 0.875rem; align-items: start; }
    .g2-today__cols { grid-template-columns: 1fr; gap: 0.875rem; }
}
