/* ==========================================================================
   Case history: elenco (pagina case-history) e singola storia.
   Stessi token del sito; la targa del logo resta bianca anche nel tema scuro
   (i loghi dei clienti sono pensati per il fondo chiaro).
   ========================================================================== */

/* --- elenco ---------------------------------------------------------------- */
.ch-index-hero__text{position:relative;z-index:1;max-width:760px}
.ch-index-hero{padding-bottom:calc(var(--space)*.5)}
.ch-index-hero .lead{max-width:52ch}
.ch-index{padding-top:calc(var(--space)*.5)}
.ch-empty{max-width:52ch}

.ch-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.25rem,.8rem + 1.2vw,2rem)}
.ch-grid > li{display:flex}
@media (max-width:1000px){.ch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ch-grid{grid-template-columns:1fr}}

.ch-card{display:flex;flex-direction:column;width:100%;background:#fff;border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;
  text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.ch-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.ch-card:focus-visible{outline-offset:4px}
.ch-card__media{position:relative;display:grid;place-items:center;aspect-ratio:16/10;background:var(--panel);overflow:hidden;border-bottom:var(--border-card)}
.ch-card__media::after{content:"";position:absolute;right:0;top:0;width:34%;height:100%;background:var(--red);clip-path:polygon(100% 0,100% 100%,30% 100%);opacity:.9}
.ch-card__media.has-photo::after{display:none}
.ch-card__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ch-card__media.has-photo .ch-card__logo{position:absolute;left:16px;bottom:16px;height:56px;width:150px;padding:8px 12px}
.ch-card__body{display:flex;flex-direction:column;gap:10px;flex:1;padding:clamp(1.25rem,1rem + .8vw,1.75rem)}
.ch-card__meta{font-family:var(--font-d);font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:var(--track);color:var(--accent-text,var(--red))}
.ch-card__title{font-size:var(--fs-h3);line-height:1.25;margin:0}
.ch-card__text{color:var(--muted)}
.ch-card .link-arrow{margin-top:auto;padding-top:6px}

/* targa del logo */
.ch-plate{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;background:#fff;border-radius:var(--r);box-shadow:0 4px 14px rgba(40,60,80,.10)}
.ch-plate img{display:block;height:100%;width:100%;object-fit:contain}
.ch-card__logo{height:96px;width:min(72%,260px);padding:14px 22px}
.ch-logo-text{font-family:var(--font-d);font-weight:700;font-size:clamp(1.125rem,1rem + .5vw,1.5rem);color:#232526;text-align:center;line-height:1.15}

/* --- singola: intestazione ------------------------------------------------ */
.ch-hero .lead{max-width:44ch}
.ch-hero__media{display:grid;place-items:center;min-height:clamp(220px,18vw + 120px,380px)}
.ch-hero__photo{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow-lg)}
.ch-hero__media.has-photo .ch-hero__logo{position:absolute;left:clamp(-18px,-1.5vw,-8px);bottom:clamp(-18px,-1.5vw,-8px);height:76px;width:200px;padding:10px 16px}
.ch-hero__media:not(.has-photo) .ch-hero__logo{width:min(100%,420px);aspect-ratio:16/9;padding:clamp(1.5rem,1rem + 2vw,2.75rem);box-shadow:var(--shadow-lg)}

@media (max-width:900px){
  .ch-hero__media{min-height:0;margin-top:8px}
  .ch-hero__media.has-photo .ch-hero__logo{left:12px;bottom:12px;height:60px;width:160px}
}

/* --- numeri ---------------------------------------------------------------- */
.ch-numbers .stats{list-style:none;margin:0;padding:0}
.ch-numbers .stat__label{display:block}

/* --- scheda e racconto ---------------------------------------------------- */
.ch-body__grid{display:grid;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:var(--gap);align-items:start}
.ch-facts{position:sticky;top:calc(var(--nav-h) + 24px);background:var(--panel);border-radius:var(--r);border-top:var(--border-card);padding:clamp(1.25rem,1rem + .8vw,1.75rem)}
.ch-facts dl{margin:0;display:grid;gap:16px}
.ch-facts dt,.ch-facts__label{font-family:var(--font-d);font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:var(--track);color:var(--muted);margin:0 0 4px}
.ch-facts dd{margin:0;font-family:var(--font-d);font-weight:600;color:var(--ink)}
.ch-facts dl + .ch-facts__label{margin-top:22px}
.ch-modules{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.ch-modules .pill{text-decoration:none;font-family:var(--font-d);font-weight:600;font-size:var(--fs-small);color:var(--ink)}
.ch-modules .pill:hover{background:var(--red);color:#fff}
.ch-story{max-width:720px;display:grid;gap:clamp(2rem,1.5rem + 1.5vw,3rem)}
.ch-story__block h2{font-size:var(--fs-h3);font-weight:600;display:flex;align-items:center;gap:12px;margin-bottom:.75em}
.ch-story__block h2::before{content:"";width:22px;height:3px;background:var(--red);flex:none}
.ch-story__block p{margin:0 0 1em}
.ch-story__block p:last-child{margin-bottom:0}
/* senza racconto la scheda diventa una fascia orizzontale */
.ch-body--solo{padding-block:calc(var(--space)*.6)}
.ch-body--solo .ch-body__grid{grid-template-columns:1fr}
.ch-body--solo .ch-facts{position:static;display:flex;flex-wrap:wrap;gap:24px 48px;align-items:flex-start}
.ch-body--solo .ch-facts dl{display:flex;flex-wrap:wrap;gap:24px 48px}
.ch-body--solo .ch-facts dl + .ch-facts__label{margin-top:0}
@media (max-width:900px){
  .ch-body__grid{grid-template-columns:1fr}
  .ch-facts{position:static}
}

/* --- citazione ------------------------------------------------------------- */
.ch-quote{overflow:hidden}
.ch-quote__figure{position:relative;z-index:1;margin:0 auto;max-width:860px;padding-left:clamp(0px,4vw,48px)}
.ch-quote blockquote{margin:0;font-family:var(--font-d);font-weight:600;font-size:clamp(1.25rem,1rem + 1vw,1.875rem);line-height:1.35;color:#fff}
.ch-quote blockquote::before{content:"\201C";display:block;font-size:4em;line-height:.6;color:#FF8F8B;margin-bottom:.1em}
.ch-quote blockquote p{margin:0 0 .6em}
.ch-quote figcaption{margin-top:1.25rem;display:flex;flex-direction:column;gap:2px;color:var(--on-navy)}
.ch-quote figcaption strong{color:#fff}
@media (max-width:900px){.ch-quote .band-tri{display:none}}

/* --- foto ------------------------------------------------------------------ */
.ch-gallery__grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:clamp(1rem,.6rem + 1vw,1.5rem)}
.ch-gallery figure{margin:0}
.ch-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r)}
.ch-gallery figcaption{margin-top:8px;font-size:var(--fs-small);color:var(--muted)}

/* --- invito finale --------------------------------------------------------- */
.ch-cta{overflow:hidden}
.ch-cta__inner{position:relative;z-index:1;max-width:min(var(--container),100% - 2*var(--gutter))}
.ch-cta__inner > *{max-width:640px}
.ch-cta h2{color:#fff}
@media (max-width:900px){.ch-cta .band-tri{display:none}}

/* --- tema scuro ------------------------------------------------------------ */
[data-theme="dark"] .ch-card{background:var(--surface)}
[data-theme="dark"] .ch-facts{background:var(--surface)}
[data-theme="dark"] .ch-modules .pill{color:var(--ink)}

@media (prefers-reduced-motion:reduce){.ch-card{transition:none}.ch-card:hover{transform:none}}
