/* Archivio Cantieri — IMR. Vetrina (griglia) + scheda singola. Font globali: Archivo Expanded / Archivo / IBM Plex Mono. */
.ca-arch,.ca-single{
  --ink:#16130F;--ink-2:#211B16;--paper:#F6F2EA;--paper-2:#EFEADF;--white:#fff;
  --brick:#CE6161;--brick-deep:#A23B2E;--brick-ink:#7E2A20;--concrete:#8C8379;--concrete-2:#B4ABA0;
  --line:rgba(22,19,15,.14);--line-dk:rgba(246,242,234,.16);
  --display:"Archivo Expanded",system-ui,sans-serif;--sans:"Archivo",system-ui,sans-serif;--mono:"IBM Plex Mono",ui-monospace,monospace;
  background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;
}
.ca-arch *,.ca-single *{box-sizing:border-box}
.ca-arch img,.ca-single img{display:block;max-width:100%}
.ca-arch .wrap,.ca-single .wrap{width:min(1240px,92vw);margin-inline:auto}
.ca-arch .kick,.ca-single .kick{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brick-deep);display:inline-block}
.ca-arch .kick.light,.ca-single .kick.light{color:#F0C9C9}

/* ---------- HERO (archivio) ---------- */
.ca-hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;padding:clamp(8rem,16vh,11rem) 0 clamp(2.4rem,5vh,3.4rem)}
.ca-hero .bg{position:absolute;inset:0;z-index:0}
.ca-hero .bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.92)}
.ca-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,13,10,.55) 0%,rgba(16,13,10,.12) 34%,rgba(16,13,10,.92) 100%)}
.ca-hero .wrap{position:relative;z-index:2}
.ca-hero h1{font-family:var(--display);font-weight:800;font-size:clamp(2.6rem,6.5vw,5.4rem);line-height:.95;letter-spacing:-.015em;text-transform:uppercase;margin:.6rem 0 0}
.ca-hero .sub{margin-top:1.1rem;font-size:1.1rem;color:#EDE7DD;max-width:48ch}
.ca-hero .stats{margin-top:2rem;display:flex;gap:2.4rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.22);padding-top:1.2rem}
.ca-hero .stats .s .n{font-family:var(--display);font-weight:700;font-size:1.7rem}
.ca-hero .stats .s .l{font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--concrete-2);margin-top:.15rem}

/* ---------- FILTER BAR ---------- */
.ca-bar{position:sticky;top:0;z-index:30;background:var(--ink);color:#fff;border-bottom:1px solid var(--line-dk)}
.ca-bar .wrap{display:flex;align-items:center;gap:1.4rem;padding:.9rem 0;flex-wrap:wrap}
.ca-bar .gl{font-family:var(--mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--concrete-2)}
.ca-bar .grp{display:flex;gap:.4rem;flex-wrap:wrap}
.ca-bar button{font-family:var(--mono);cursor:pointer;background:transparent;border:1px solid rgba(255,255,255,.22);color:#D8D0C6;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;padding:.5rem .85rem;border-radius:2px;transition:.15s}
.ca-bar button:hover{border-color:#fff;color:#fff}
.ca-bar button.on{background:var(--brick);border-color:var(--brick);color:#fff}
.ca-bar .count{margin-left:auto;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;color:var(--concrete-2)}

/* ---------- GRID ---------- */
.ca-sectitle{display:flex;align-items:baseline;gap:1rem;padding:clamp(2.4rem,5vw,3.6rem) 0 1.6rem}
.ca-sectitle h2{font-family:var(--display);font-weight:700;font-size:clamp(1.4rem,2.6vw,2rem);text-transform:uppercase;letter-spacing:-.01em;margin:0}
.ca-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.ca-card{background:var(--paper);display:block;position:relative;overflow:hidden;text-decoration:none;color:inherit}
.ca-card .ph{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--paper-2)}
.ca-card .ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.95) contrast(1.02);transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.ca-card:hover .ph img{transform:scale(1.06)}
.ca-card .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,13,10,.35) 0%,transparent 28%,transparent 42%,rgba(16,13,10,.86) 100%)}
.ca-card .top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;justify-content:space-between;align-items:flex-start;padding:1rem 1.1rem;color:#fff}
.ca-card .code{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em}
.ca-card .stp{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .55rem;border-radius:2px}
.ca-card .stp.corso{background:var(--brick);color:#fff}
.ca-card .stp.fatto{background:rgba(246,242,234,.9);color:var(--ink)}
.ca-card .btm{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1.2rem 1.1rem;color:#fff}
.ca-card .tip{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#F0C9C9;margin-bottom:.45rem;display:block}
.ca-card h3{font-family:var(--display);font-weight:700;font-size:1.05rem;line-height:1.1;text-transform:uppercase;letter-spacing:-.01em;margin:0}
.ca-card .loc{margin-top:.5rem;font-size:.8rem;color:#E7E0D6;display:flex;align-items:center;gap:.4rem}
.ca-card .meta{margin-top:.7rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;color:var(--concrete-2);display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.2);padding-top:.6rem}
.ca-card .meta .kind{color:#F0C9C9}

/* ---------- PAGER ---------- */
.ca-pager{display:flex;align-items:center;justify-content:center;gap:.4rem;flex-wrap:wrap;margin:2.2rem 0 5rem}
.ca-pager button{font-family:var(--mono);cursor:pointer;background:transparent;border:1px solid var(--line);color:var(--ink-2);font-size:.74rem;letter-spacing:.06em;min-width:38px;padding:.55rem .7rem;border-radius:2px;transition:.15s}
.ca-pager button:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}
.ca-pager button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ca-pager button:disabled{opacity:.35;cursor:default}
.ca-pager .dots{color:var(--concrete);padding:0 .2rem;font-family:var(--mono);font-size:.74rem}
.ca-pager .pg-info{margin-right:.6rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;color:var(--concrete)}

/* ---------- MAPPA ---------- */
.ca-mapwrap{background:var(--paper);padding:clamp(2.4rem,5vw,3.6rem) 0 0}
.ca-mapttl{max-width:640px;margin-bottom:1.6rem}
.ca-mapttl h2{font-family:var(--display);font-weight:800;font-size:clamp(1.8rem,3.6vw,3rem);line-height:.98;letter-spacing:-.015em;text-transform:uppercase;margin:.5rem 0 0}
.ca-mapttl .sub{font-size:1rem;color:#433D36;margin-top:.9rem;max-width:56ch}
#ca-map{height:clamp(420px,62vh,640px);width:100%;background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);z-index:1}
#ca-map.leaflet-container{font-family:var(--sans)}
/* basemap desaturato per coerenza col brand (i pin restano a colori) */
#ca-map .leaflet-tile-pane{filter:grayscale(.9) contrast(.92) brightness(1.05)}
/* segnaposto */
.ca-pin span{display:block;width:14px;height:14px;border-radius:50%;background:var(--ink);border:2.5px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.4);transition:transform .15s}
.ca-pin.corso span{background:var(--brick)}
.ca-pin:hover span{transform:scale(1.45)}
/* popup brand */
.ca-mappop .leaflet-popup-content-wrapper{border-radius:3px;padding:0;overflow:hidden;box-shadow:0 14px 40px -12px rgba(0,0,0,.45)}
.ca-mappop .leaflet-popup-content{margin:0;width:248px!important}
.ca-mappop .leaflet-popup-tip{background:var(--paper)}
.ca-pop{display:block;text-decoration:none;color:var(--ink);background:var(--paper)}
.ca-pop .ph{display:block;height:118px;background-size:cover;background-position:center;background-color:var(--paper-2)}
.ca-pop .tx{display:block;padding:.75rem .85rem .85rem}
.ca-pop .tx b{font-family:var(--display);font-weight:700;font-size:.9rem;line-height:1.12;text-transform:uppercase;letter-spacing:-.01em;display:block}
.ca-pop .tx .c{display:block;font-size:.78rem;color:var(--concrete);margin-top:.35rem}
.ca-pop .tx .tag{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brick-deep);margin-top:.4rem}
.ca-pop .tx .go{display:block;font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);margin-top:.6rem;border-top:1px solid var(--line);padding-top:.5rem}
.ca-pop:hover .tx .go{color:var(--brick-deep)}

/* ================= SCHEDA SINGOLA ================= */
.ca-single .ca-dhero{position:relative;min-height:84vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;padding:clamp(7rem,14vh,10rem) 0 clamp(2.5rem,5vh,3.4rem)}
.ca-single .ca-dhero .bg{position:absolute;inset:0}
.ca-single .ca-dhero .bg img{width:100%;height:100%;object-fit:cover}
.ca-single .ca-dhero .bg .bgvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.ca-single .ca-dhero .bg::after{z-index:2}
@media(prefers-reduced-motion:reduce){.ca-single .ca-dhero .bg .bgvid{display:none}}
/* blocco video nel corpo */
.ca-video{position:relative;max-width:760px;margin:1.4rem auto 0;background:#000;line-height:0;box-shadow:0 26px 60px -24px rgba(16,13,10,.55);outline:1px solid var(--line)}
.ca-video video{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;background:#000}
.ca-video.yt{aspect-ratio:16/9;line-height:0}
.ca-video.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ca-videoblk .ca-h2{margin-bottom:.3rem}
/* pulsante play (sparisce dopo il primo avvio) */
.ca-playov{position:absolute;inset:0;z-index:2;border:0;cursor:pointer;background:linear-gradient(0deg,rgba(16,13,10,.35),rgba(16,13,10,.1));display:grid;place-items:center;transition:background .2s}
.ca-playov:hover{background:linear-gradient(0deg,rgba(16,13,10,.45),rgba(16,13,10,.2))}
.ca-video.played .ca-playov{display:none}
.ca-playov b{width:74px;height:74px;border-radius:50%;background:var(--brick);display:grid;place-items:center;box-shadow:0 10px 34px -8px rgba(0,0,0,.6);transition:transform .15s}
.ca-playov:hover b{transform:scale(1.07)}
.ca-playov b::after{content:"";border-style:solid;border-width:13px 0 13px 22px;border-color:transparent transparent transparent #fff;margin-left:6px}
.ca-playov em{position:absolute;bottom:14px;left:16px;font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:#fff;font-style:normal;text-shadow:0 1px 4px rgba(0,0,0,.6)}
.ca-single .ca-dhero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,13,10,.5) 0%,rgba(16,13,10,.12) 38%,rgba(16,13,10,.92) 100%)}
.ca-single .ca-dhero .wrap{position:relative;z-index:2}
.ca-single .ca-dhero .crumb{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#E7E0D6;margin-bottom:1rem}
.ca-single .ca-dhero .crumb a{color:#fff;opacity:.85;text-decoration:none}
.ca-single .ca-dhero .crumb span{opacity:.5;margin:0 .3rem}
.ca-single .ca-dhero .pill{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;background:var(--brick-ink);color:#fff;padding:.4rem .8rem;border-radius:2px;margin-bottom:1.1rem}
.ca-single .ca-dhero h1{font-family:var(--display);font-weight:800;font-size:clamp(2rem,4.8vw,3.8rem);line-height:1;letter-spacing:-.015em;text-transform:uppercase;margin:0}
.ca-single .ca-dhero .loc{margin-top:.9rem;font-size:1.1rem;color:#EDE7DD;display:flex;align-items:center;gap:.5rem}
.ca-single .ca-dhero .kindtag{position:absolute;right:0;bottom:1.4rem;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;background:rgba(255,255,255,.14);padding:.35rem .7rem;border-radius:2px}

.ca-qbar{background:var(--ink);color:#fff}
.ca-qbar .wrap{display:flex;gap:2rem;flex-wrap:wrap;padding:1rem 0}
.ca-qbar .f .k{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--concrete-2)}
.ca-qbar .f .v{font-weight:600;font-size:.95rem}
.ca-qbar .f .v.brick{color:var(--brick)}

.ca-blk{padding:clamp(2.6rem,5vw,4.2rem) 0}
.ca-blk.ca-pt0{padding-top:0}
.ca-h2,.ca-site h2{font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,2.8vw,2.3rem);text-transform:uppercase;letter-spacing:-.01em;margin:.4rem 0 0}
.ca-leadgrid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:start}
.ca-leadgrid .big{font-family:var(--display);font-weight:600;font-size:clamp(1.2rem,1.9vw,1.6rem);line-height:1.22;color:var(--ink);margin:.6rem 0 0}
.ca-leadgrid p.t{font-size:1.02rem;color:#433D36;margin-top:1rem}
.ca-dt{border:1px solid var(--line);background:var(--white);margin-top:.6rem}
.ca-dt .r{display:flex;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem;border-bottom:1px solid var(--line);font-size:.9rem}
.ca-dt .r:last-child{border-bottom:none}
.ca-dt .r .k{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--concrete)}
.ca-dt .r .v{font-weight:600;text-align:right}
.ca-dt .r .v.muted{color:var(--concrete);font-weight:400}
.ca-feat4{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:2.4rem}
.ca-feat4 .f{background:var(--paper);padding:1.5rem 1.2rem;position:relative}
.ca-feat4 .f h4{font-family:var(--display);font-weight:600;font-size:.98rem;margin:0}
.ca-feat4 .f p{margin-top:.35rem;font-size:.82rem;color:#5B534B}
.ca-feat4 .f .chk{position:absolute;top:1.1rem;right:1.1rem;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:.7rem}
.ca-feat4 .f.on .chk{background:var(--brick);color:#fff}
.ca-feat4 .f.off{opacity:.5}
.ca-feat4 .f.off .chk{background:var(--concrete-2);color:#fff}

.ca-gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:190px;gap:10px}
.ca-gal a{overflow:hidden;position:relative;background:var(--paper-2)}
.ca-gal a img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.ca-gal a:hover img{transform:scale(1.06)}
.ca-gal a.big{grid-column:span 2;grid-row:span 2}
.ca-site{background:var(--ink);color:#fff}
.ca-site .head{margin-bottom:1.8rem}
.ca-site .head p{color:#D8D0C6;max-width:60ch;margin-top:.8rem}
.ca-site .ca-gal a .tag{position:absolute;left:0;bottom:0;z-index:2;font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(16,13,10,.82);color:#fff;padding:.3rem .5rem}
.ca-site .ca-gal a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(0,0,0,.5) 100%)}

.ca-diary{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:1rem}
.ca-diary .d{background:var(--paper);padding:1.4rem 1.2rem}
.ca-diary .d .ph{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brick-deep)}
.ca-diary .d .ttl{font-family:var(--display);font-weight:600;font-size:.98rem;margin-top:.5rem}
.ca-diary .d p{font-size:.82rem;color:#5B534B;margin-top:.4rem}
.ca-disc{font-family:var(--mono);font-size:.66rem;letter-spacing:.03em;color:var(--concrete);border-top:1px solid var(--line);padding-top:1.1rem;margin-top:2.4rem}

.ca-cta{background:var(--brick);color:#fff}
.ca-cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:clamp(2.8rem,5vw,4rem) 0;flex-wrap:wrap}
.ca-cta h2{font-family:var(--display);font-weight:800;font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.02;text-transform:uppercase;margin:0}
.ca-cta .eyn{font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.ca-cta a.go{background:#fff;color:var(--brick-ink);font-weight:700;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;padding:1rem 1.8rem;border-radius:2px;white-space:nowrap;text-decoration:none}
.ca-back{padding:2rem 0 4rem}
.ca-back a{font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--brick-deep);text-decoration:none}

@media(max-width:900px){.ca-grid{grid-template-columns:repeat(2,1fr)}.ca-leadgrid{grid-template-columns:1fr}.ca-feat4{grid-template-columns:repeat(2,1fr)}.ca-gal{grid-template-columns:repeat(2,1fr)}.ca-diary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.ca-grid{grid-template-columns:1fr}.ca-feat4,.ca-gal,.ca-diary{grid-template-columns:1fr}.ca-gal a.big{grid-column:span 1;grid-row:span 1}}
/* MOBILE: barra filtri compatta (righe scorrevoli), non sticky; mappa più bassa */
@media(max-width:700px){
  .ca-bar{position:static}
  .ca-bar .wrap{gap:.5rem .7rem}
  .ca-bar .grp{flex:1 1 auto;min-width:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding-bottom:3px}
  .ca-bar .grp::-webkit-scrollbar{height:0}
  .ca-bar .grp button{flex:0 0 auto}
  .ca-bar .gl{flex:0 0 auto}
  .ca-bar .count{flex:1 1 100%;margin-left:0}
  #ca-map{height:clamp(320px,50vh,440px)}
  .ca-mapttl h2{font-size:clamp(1.6rem,8vw,2.2rem)}
}
