/**
 * Case study (single-progetto.php + template-parts/progetto/blocco.php).
 * Namespace .cdcs-*, si appoggia a .azm-* (azienda-modello.css) per hero, scheda e CTA.
 * Consuma solo i token: nessun colore nuovo.
 *
 * NB: la pagina è "legacy" (Bootstrap + legacy-restyle.css), dove h1–h6 hanno
 * font-size con !important: le dimensioni dei titoli qui passano dalle classi pin
 * (.cd-title-lg ecc.) oppure da regole con !important dove indicato.
 */

/* ---------- Hero ---------- */
/* Più spazio sotto: la copertina ci sale sopra */
.cdcs-hero { padding-bottom: clamp(7rem, 5rem + 8vw, 12rem); }
/* I titoli dei progetti sono lunghi: un gradino sotto al 5xl standard */
.cdcs .cdcs-hero__title { font-size: var(--cd-text-4xl) !important; max-width: 22ch; }

/* Scheda progetto nella card vetro */
.cdcs-meta { display: grid; gap: var(--cd-space-4); margin: 0; }
.cdcs-meta__row {
  display: grid;
  gap: 0.15rem;
  padding-bottom: var(--cd-space-4);
  border-bottom: 1px solid color-mix(in srgb, var(--cd-white) 14%, transparent);
}
.cdcs-meta__row:last-child { border-bottom: 0; padding-bottom: 0; }
.cdcs-meta dt {
  font-size: var(--cd-text-xs);
  text-transform: uppercase;
  letter-spacing: var(--cd-tracking-wide);
  color: color-mix(in srgb, var(--cd-white) 60%, transparent);
  font-weight: var(--cd-font-weight-semibold);
}
.cdcs-meta dd {
  margin: 0;
  font-size: var(--cd-text-lg);
  font-weight: var(--cd-font-weight-semibold);
  color: var(--cd-white);
}

/* ---------- Copertina sovrapposta all'hero ---------- */
.cdcs-cover {
  position: relative;
  z-index: 2;
  margin-top: calc(-1 * clamp(5rem, 3.5rem + 6vw, 9rem));
}
.cdcs-cover__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 7.5;
  object-fit: cover;
  border-radius: var(--cd-radius-2xl);
  box-shadow: var(--cd-shadow-xl);
}

/* ---------- Blocchi ---------- */
.cdcs-block { padding-block: clamp(3rem, 2rem + 4vw, 5.5rem) 0; }
.cdcs-block--tight { padding-top: clamp(2rem, 1.5rem + 2vw, 3rem); }
/* L'ultimo blocco prima della navigazione respira */
.cdcs-block:last-of-type { padding-bottom: clamp(3rem, 2rem + 4vw, 5.5rem); }

.cdcs-title {
  font-weight: var(--cd-font-weight-bold);
  color: var(--cd-color-heading);
  letter-spacing: var(--cd-tracking-tight);
  line-height: 1.15;
  margin: 0 0 var(--cd-space-6);
  max-width: 24ch;
}
.cdcs-narrow { max-width: calc(var(--cd-container-narrow) + 2 * var(--cd-gutter)); }

/* Testo lungo (WYSIWYG ACF) */
.cdcs-prose { font-size: var(--cd-text-base); line-height: var(--cd-leading-relaxed); color: var(--cd-color-text); }
.cdcs-prose > * + * { margin-top: var(--cd-space-4); }
.cdcs-prose p { margin: 0; }
.cdcs-prose p + p { margin-top: var(--cd-space-4); }
.cdcs-prose strong, .cdcs-prose b { color: var(--cd-color-heading); }
.cdcs-prose a { color: var(--cd-color-accent); text-decoration: underline; text-underline-offset: 3px; }
.cdcs-prose ul, .cdcs-prose ol { padding-left: 1.25rem; }
.cdcs-prose li + li { margin-top: var(--cd-space-2); }

/* Intro + scheda tecnica */
.cdcs-intro__grid { display: grid; gap: clamp(2rem, 1rem + 4vw, 4.5rem); align-items: start; }
@media (min-width: 992px) {
  .cdcs-intro__grid { grid-template-columns: 1.1fr 0.9fr; }
}
.cdcs-intro__side { display: grid; gap: var(--cd-space-6); }
.cdcs-intro__media { margin: 0; }
.cdcs-intro__media img {
  display: block; width: 100%; height: auto;
  aspect-ratio: 4 / 3; object-fit: cover;
  border-radius: var(--cd-radius-xl);
  box-shadow: var(--cd-shadow-lg);
}
.cdcs-spec {
  background: var(--cd-color-bg-soft);
  border: 1px solid var(--cd-color-border);
  border-radius: var(--cd-radius-xl);
  padding: clamp(1.25rem, 1rem + 1.5vw, 2rem);
}
.cdcs-spec__title {
  font-size: var(--cd-text-sm);
  font-weight: var(--cd-font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: var(--cd-tracking-wide);
  color: var(--cd-color-accent);
  margin: 0 0 var(--cd-space-4);
}
.cdcs-spec__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--cd-space-3); }
.cdcs-spec__item {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem var(--cd-space-3);
  padding-bottom: var(--cd-space-3);
  border-bottom: 1px solid var(--cd-color-border);
}
.cdcs-spec__item:last-child { border-bottom: 0; padding-bottom: 0; }
.cdcs-spec__label { font-size: var(--cd-text-sm); color: var(--cd-color-text-muted); min-width: 7.5rem; }
.cdcs-spec__value { font-weight: var(--cd-font-weight-semibold); color: var(--cd-color-heading); }
.cdcs-spec__value a { color: var(--cd-color-accent); text-decoration: underline; text-underline-offset: 3px; }

/* Testo + citazione */
.cdcs-split { display: grid; gap: clamp(2rem, 1rem + 4vw, 4rem); align-items: center; }
@media (min-width: 992px) {
  .cdcs-split { grid-template-columns: 1.25fr 0.75fr; }
}
.cdcs-quote-card {
  position: relative;
  margin: 0;
  padding: clamp(2rem, 1.5rem + 2vw, 3rem);
  padding-top: clamp(3.5rem, 3rem + 2vw, 4.5rem);
  border-radius: var(--cd-radius-xl);
  background: var(--cd-gradient-brand);
  box-shadow: var(--cd-shadow-brand);
  color: var(--cd-white);
  font-size: var(--cd-text-xl);
  font-weight: var(--cd-font-weight-semibold);
  line-height: 1.4;
}
.cdcs-quote-card::before {
  content: "\201C";
  position: absolute;
  top: 0.15em; left: 0.45em;
  font-size: 4.5rem; line-height: 1;
  color: color-mix(in srgb, var(--cd-white) 45%, transparent);
  font-family: Georgia, serif;
}
.cdcs-quote-card p { margin: 0; color: inherit; }

/* Citazione grande centrata */
.cdcs-pullquote {
  margin: 0;
  text-align: center;
  font-size: var(--cd-text-3xl);
  font-weight: var(--cd-font-weight-bold);
  line-height: 1.25;
  color: var(--cd-color-heading);
}
.cdcs-pullquote::before {
  content: "\201C";
  display: block;
  font-family: Georgia, serif;
  font-size: 5rem; line-height: 0.8;
  background: var(--cd-gradient-brand);
  -webkit-background-clip: text; background-clip: text;
  -webkit-text-fill-color: transparent;
}
.cdcs-pullquote p { margin: 0; }

/* Galleria a mosaico */
.cdcs-gallery {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--cd-space-5);
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .cdcs-gallery--2, .cdcs-gallery--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 992px) {
  .cdcs-gallery--3 { grid-template-columns: repeat(3, 1fr); }
}
.cdcs-gallery__link {
  position: relative; display: block; overflow: hidden;
  border-radius: var(--cd-radius-lg);
  box-shadow: var(--cd-shadow-sm);
}
.cdcs-gallery__link img {
  display: block; width: 100%; height: auto;
  aspect-ratio: 4 / 3; object-fit: cover;
  transition: transform var(--cd-duration-slow) var(--cd-ease-out);
}
.cdcs-gallery__zoom {
  position: absolute; inset: 0;
  background: var(--cd-gradient-brand);
  opacity: 0;
  transition: opacity var(--cd-duration) var(--cd-ease);
}
.cdcs-gallery__zoom::after {
  content: "";
  position: absolute; top: 50%; left: 50%;
  width: 3rem; height: 3rem; margin: -1.5rem 0 0 -1.5rem;
  border-radius: 50%;
  background: var(--cd-white)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b32a6e' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3M11 8v6M8 11h6'/%3E%3C/svg%3E")
    center / 1.25rem no-repeat;
}
.cdcs-gallery__link:hover img,
.cdcs-gallery__link:focus-visible img { transform: scale(1.05); }
.cdcs-gallery__link:hover .cdcs-gallery__zoom,
.cdcs-gallery__link:focus-visible .cdcs-gallery__zoom { opacity: 0.55; }

/* Immagine singola */
.cdcs-figure { margin: 0 auto; }
.cdcs-figure img {
  display: block; width: 100%; height: auto;
  border-radius: var(--cd-radius-xl);
  box-shadow: var(--cd-shadow-lg);
}

/* Video */
.cdcs-video {
  position: relative; display: grid; place-items: center;
  aspect-ratio: 16 / 9;
  border-radius: var(--cd-radius-xl);
  overflow: hidden;
  background: var(--cd-gradient-brand-vivid) center / cover no-repeat;
  box-shadow: var(--cd-shadow-lg);
}
.cdcs-video__play {
  width: 5rem; height: 5rem; border-radius: 50%;
  background: var(--cd-white);
  box-shadow: var(--cd-shadow-xl);
  position: relative;
  transition: transform var(--cd-duration) var(--cd-ease);
}
.cdcs-video__play::after {
  content: ""; position: absolute; top: 50%; left: 54%;
  transform: translate(-50%, -50%);
  border-style: solid; border-width: 0.8rem 0 0.8rem 1.3rem;
  border-color: transparent transparent transparent var(--cd-primary-600);
}
.cdcs-video:hover .cdcs-video__play { transform: scale(1.08); }

/* Correlati: titolo centrato come le altre intestazioni di sezione */
.cdcs-related__title { text-align: center; }

/* Titoli interni ai testi (normalizzati da cd2_progetto_prose) */
.cdcs-prose .cdcs-prose__h {
  font-weight: var(--cd-font-weight-semibold);
  color: var(--cd-color-heading);
  line-height: 1.3;
  margin: var(--cd-space-8) 0 var(--cd-space-3);
}
.cdcs-prose > .cdcs-prose__h:first-child { margin-top: 0; }

/* Card "Altri progetti": il nome è un H4 (sotto l'H3 di sezione) e il CSS legacy
   gli dà un'interlinea ampia; la riportiamo a quella della card originale. */
.cd-related .cd-portfolio__name { line-height: 1.3 !important; }

/* Galleria da 1 sola immagine: miniatura centrata, non a tutta larghezza */
.cdcs-gallery--1 { max-width: 26rem; margin-inline: auto; }

/* Pager (componente .cd-pager in components.css): spazio sotto l'ultimo blocco */
.cdcs-pager { padding-bottom: clamp(3rem, 2rem + 4vw, 5rem); }
