/* Lavori: the gallery page. Same system as home.css (tokens, masthead, colophon); photographs shown whole, never cropped. */
/* Hallmark · waive 83 · photographs cover 47% below the intro on lavori.html · this page is the gallery of the owner’s own finished work, the photos are the content */

.mast__side a[aria-current="page"], .colophon__links a[aria-current="page"] { color: var(--color-accent); text-decoration: underline; text-decoration-color: var(--color-accent); }

/* ---------- intro ---------- */
.intro { padding-block: var(--section-gap-s) var(--space-3xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
.intro__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-3xl); align-items: end; }
.intro h1 { max-width: 12ch; color: var(--color-ink); }
.intro__side { display: grid; gap: var(--space-lg); }
.intro .lead { color: var(--color-ink-2); }
.intro__nav { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.intro__nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-md); border: var(--rule-hair) solid var(--color-rule); border-radius: var(--radius-pill); color: var(--color-ink); text-decoration: none; white-space: nowrap; transition: background-color var(--dur-short) var(--ease-out), border-color var(--dur-short) var(--ease-out); }
.intro__nav a:hover { background: var(--color-paper-2); border-color: var(--color-ink); }
.intro__nav a:active { background: var(--color-paper-3); }
.intro__nav a:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }

/* ---------- a category ---------- */
.categoria { padding-block: var(--section-gap-s) 0; }
.categoria + .categoria { margin-top: var(--space-2xl); }
.categoria__head { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-3xl); align-items: end; margin-bottom: var(--space-2xl); padding-bottom: var(--space-md); border-bottom: var(--rule-head) solid var(--color-ink); }
.categoria h2 { color: var(--color-ink); }

/* ---------- the carousel: two whole photographs at a time, the rest by arrow or swipe ---------- */
.carosello { display: grid; gap: var(--space-lg); }
.carosello__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - var(--gap-columns)) / 2); gap: var(--gap-columns); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; border-radius: var(--radius-card); }
.carosello__track::-webkit-scrollbar { display: none; }
.carosello__track:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 4px; }
.opera { margin: 0; min-width: 0; scroll-snap-align: start; }
.opera__link { display: block; border-radius: var(--radius-card); transition: opacity var(--dur-short) var(--ease-out); }
.opera__link:hover { opacity: 0.88; }
.opera__link:active { opacity: 0.8; }
.opera__link:focus-visible { outline: 2px solid var(--color-focus); outline-offset: -2px; }
.opera img { display: block; width: 100%; height: clamp(18rem, 62vh, 38rem); object-fit: contain; filter: sepia(0.1) saturate(0.97); background: var(--color-paper-2); border-radius: var(--radius-card); }
.opera figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-md); padding-top: var(--space-sm); font-size: var(--text-sm); color: var(--color-ink); }
.opera figcaption span:first-child { max-width: 34ch; text-wrap: pretty; }
.opera__year { flex-shrink: 0; color: var(--color-pencil); font-variant-numeric: tabular-nums; }

.carosello__nav { display: flex; align-items: center; gap: var(--space-md); }
.carosello__nav[hidden] { display: none; }
.carosello__count { margin: 0; min-width: 7ch; text-align: center; font-size: var(--text-sm); color: var(--color-pencil); font-variant-numeric: tabular-nums; }
.carosello__btn { display: inline-grid; place-items: center; width: 48px; height: 48px; padding: 0; border: var(--rule-hair) solid var(--color-ink); border-radius: var(--radius-pill); background: transparent; color: var(--color-ink); cursor: pointer; transition: background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out), opacity var(--dur-short) var(--ease-out); }
.carosello__btn:hover { background: var(--color-ink); color: var(--color-paper); }
.carosello__btn:active { transform: scale(0.96); }
.carosello__btn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; }
.carosello__btn:disabled { cursor: not-allowed; border-color: var(--color-rule); background: var(--color-paper-2); color: var(--color-ink-2); transform: none; }

/* ---------- close ---------- */
.cta { margin-top: var(--section-gap); padding-block: var(--section-gap-s); background: var(--woodgrain) center / 100% 100% no-repeat, linear-gradient(175deg, var(--color-walnut-2), var(--color-walnut)); color: var(--color-on-dark-2); }
.cta__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-3xl); align-items: center; }
.cta h2 { max-width: 14ch; color: var(--color-on-dark); }
.cta__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md) var(--space-lg); }

@media (max-width: 60rem) {
  .intro__grid, .categoria__head, .cta__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); }
}
@media (max-width: 40rem) {
  .carosello__track { grid-auto-columns: 86%; }
  .opera img { height: clamp(16rem, 58vh, 30rem); }
}
@media (prefers-reduced-motion: reduce) {
  .opera__link, .intro__nav a, .carosello__btn { transition: none; }
  .carosello__btn:active { transform: none; }
}

/* ---------- the kitchen's card: the job told under its photographs ---------- */
.scheda { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-3xl); align-items: start; margin-top: var(--space-2xl); padding-top: var(--space-xl); border-top: var(--rule-hair) solid var(--color-rule); }
.scheda__testo { margin: 0; max-width: 32ch; font-family: var(--font-display); font-size: var(--text-xl); line-height: 1.3; color: var(--color-ink); text-wrap: pretty; }
.scheda__dati { margin: 0; }
@media (max-width: 60rem) {
  .scheda { grid-template-columns: minmax(0, 1fr); gap: var(--space-lg); }
}

/* ---------- render, then the real thing: one door side by side ---------- */
.confronto { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--gap-columns); margin-bottom: var(--space-3xl); padding-bottom: var(--space-2xl); border-bottom: var(--rule-hair) solid var(--color-rule); }
@media (max-width: 40rem) {
  .confronto { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- one wide photograph above a carousel ---------- */
.panorama { margin-bottom: var(--space-2xl); }
.panorama img { height: auto; aspect-ratio: 2880 / 1235; object-fit: cover; }
