/* Pagine di struttura: Calacatta Fabbricotti, Blocchi, Chi siamo, Contatti */

.foto-larga { height: 78svh; overflow: hidden; margin: 0 var(--m); }
.foto-larga img { width: 100%; height: 112%; object-fit: cover; margin-top: -6%; }

.cinque, .elenco-blocchi, .numeri, .sedi, .richiesta, .due-colonne, .da-fare { padding: var(--sezione) var(--m); }
.cinque h2, .elenco-blocchi h2, .numeri h2, .da-fare h2 { font-size: var(--step-head); margin-bottom: 40px; }

.cinque__lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.cinque__lista a { text-decoration: none; display: block; }
.cinque__lista img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; transition: transform .6s var(--ease); }
.cinque__lista li:nth-child(even) { margin-top: 64px; }
.cinque__lista a:hover img { transform: translateY(-8px); }
.cinque__lista h3 { font-size: var(--t-h4); letter-spacing: -0.03em; line-height: 1.1; margin: 14px 0 6px; }
.cinque__lista p { font-size: 16px; }
.cinque__fine { margin-top: 56px; }
@media (max-width: 960px) { .cinque__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } .cinque__lista li:nth-child(even) { margin-top: 40px; } }

.da-fare { background: var(--pietra); display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.da-fare h2 { grid-column: 1 / span 5; margin: 0; font-size: var(--t-h3); }
.da-fare p { grid-column: 7 / span 5; font-size: var(--step-lead); line-height: 1.3; }
@media (max-width: 860px) { .da-fare { grid-template-columns: 1fr; } .da-fare h2, .da-fare p { grid-column: 1; } }

.tab-blocchi { width: 100%; border-collapse: collapse; margin-top: 24px; }
.tab-blocchi th { text-align: left; font-size: var(--step-small); color: var(--soft); padding: 10px 12px 10px 0; border-bottom: 2px solid var(--ink); }
.tab-blocchi td { padding: 16px 12px 16px 0; border-bottom: 1px solid #CFCCC5; }
.tab-blocchi td:first-child { font-weight: 800; }
@media (max-width: 700px) {
  .tab-blocchi thead { display: none; }
  .tab-blocchi tr { display: grid; grid-template-columns: 1fr 1fr; padding: 12px 0; border-bottom: 1px solid #CFCCC5; }
  .tab-blocchi td { border: 0; padding: 2px 0; }
}

.numeri dl { margin: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.numeri dl div { display: flex; flex-direction: column-reverse; gap: 8px; }
.numeri dd { margin: 0; font-size: clamp(44px, 5.4vw, 88px); font-weight: 800; letter-spacing: -0.04em; line-height: .9; }
.numeri dt { font-size: var(--step-body); max-width: 20ch; }
@media (max-width: 860px) { .numeri dl { grid-template-columns: 1fr 1fr; gap: 36px 20px; } }

.due-colonne { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; background: var(--blu); color: var(--carta); }
.due-colonne h2 { font-size: var(--t-h3); margin-bottom: 18px; }
.due-colonne p { max-width: 42ch; }
@media (max-width: 860px) { .due-colonne { grid-template-columns: 1fr; } }

.sedi { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; padding-top: 0; }
.sedi h2 { font-size: var(--t-h4); letter-spacing: -0.03em; }
.sedi p { margin: 8px 0 16px; }
.sedi iframe { width: 100%; height: 360px; border: 0; display: block; filter: grayscale(.4); }
@media (max-width: 860px) { .sedi { grid-template-columns: 1fr; } .sedi iframe { height: 280px; } }

.richiesta { display: grid; grid-template-columns: 5fr 1fr 6fr; background: var(--pietra); }
.richiesta > div { grid-column: 1; display: flex; flex-direction: column; gap: 18px; }
.richiesta h2 { font-size: var(--step-head); }
.richiesta__tel { font-size: var(--step-lead); font-weight: 800; letter-spacing: -0.03em; line-height: 1.4; }
.richiesta__tel a { text-decoration: none; }
.richiesta__tel a:hover { text-decoration: underline; }
.richiesta form { grid-column: 3; display: flex; flex-direction: column; gap: 16px; }
.richiesta .btn { align-self: flex-start; }
.campo { display: flex; flex-direction: column; gap: 6px; }
.campo label { font-weight: 600; font-size: 16px; }
.campo input, .campo textarea { border: 2px solid transparent; background: var(--carta); min-height: 50px; padding: 10px 12px; border-radius: 0; }
.campo input:focus, .campo textarea:focus { border-color: var(--blu); outline: none; }
.campo textarea { min-height: 120px; resize: vertical; }
.sel-esito { font-weight: 600; min-height: 1.4em; }
@media (max-width: 860px) { .richiesta { grid-template-columns: 1fr; gap: 40px; } .richiesta > div, .richiesta form { grid-column: 1; } .richiesta .btn { width: 100%; } }

.da-fare__link { grid-column: 7 / span 5; font-size: var(--step-body) !important; }
@media (max-width: 860px) { .da-fare__link { grid-column: 1; } }
