/*
 * MicheleBusce.it · portfolio progetti 1.0
 * Layout responsive, gerarchia semantica e componenti orientati a WCAG 2.2 AA.
 */
.project-page{
  --project-border:rgba(32,43,53,.18);
  --project-soft:color-mix(in srgb,var(--project-accent,#3f6281) 8%,#fff);
  width:100%;
  color:var(--mb-ink);
}
.project-page :where(h1,h2,h3,p){margin-top:0}
.project-page :where(p,li,dd){font-size:var(--mb-text-body);line-height:var(--mb-line-body)}
.project-page :where(a,button){text-underline-offset:.22em}
.project-eyebrow,
.project-group-heading>div>p,
.project-method-heading>p:first-child,
.project-section-heading>p,
.project-question>div>p:first-child,
.project-criteria>div>p:first-child,
.project-scope-note>div>p,
.project-contact>div>p:first-child{
  margin:0 0 .75rem;
  color:var(--project-accent,var(--mb-blue-text));
  font-size:var(--mb-text-meta);
  font-weight:850;
  line-height:1.35;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.project-lead{
  max-width:62ch;
  margin-bottom:0;
  font-size:var(--mb-text-lead)!important;
  line-height:1.62!important;
}
.project-index-hero{
  display:grid;
  grid-template-columns:minmax(0,1.18fr) minmax(290px,.62fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:end;
  padding:clamp(4rem,8vw,8rem) var(--mb-gutter) clamp(3rem,6vw,6rem);
  background:
    linear-gradient(90deg,rgba(32,43,53,.055) 1px,transparent 1px),
    linear-gradient(rgba(32,43,53,.055) 1px,transparent 1px),
    var(--mb-paper);
  background-size:52px 52px;
  border-bottom:1px solid var(--project-border);
}
.project-index-copy{min-width:0}
.project-index-copy h1{
  max-width:12ch;
  margin:0 0 1.5rem;
  font-family:var(--mb-font-display);
  font-size:var(--mb-title-page);
  line-height:.98;
  letter-spacing:-.035em;
}
.project-index-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-top:2rem;
}
.project-index-facts{
  margin:0;
  display:grid;
  border-top:4px solid var(--mb-blue-text);
  background:#fff;
  box-shadow:var(--mb-shadow-small);
}
.project-index-facts div{
  display:grid;
  grid-template-columns:minmax(125px,.7fr) minmax(0,1fr);
  gap:1rem;
  padding:1.15rem 1.25rem;
  border-bottom:1px solid var(--project-border);
}
.project-index-facts div:last-child{border-bottom:0}
.project-index-facts dt{
  color:var(--mb-muted);
  font-size:var(--mb-text-meta);
  font-weight:750;
  line-height:1.45;
}
.project-index-facts dd{
  margin:0;
  font-weight:800;
  line-height:1.45;
}
.project-jump{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-bottom:1px solid var(--project-border);
  background:var(--mb-night);
  color:#fff;
}
.project-jump a{
  min-height:76px;
  display:flex;
  align-items:center;
  gap:.85rem;
  padding:1rem var(--mb-gutter);
  border-right:1px solid rgba(255,255,255,.2);
  color:#fff;
  font-size:var(--mb-text-small);
  font-weight:780;
  line-height:1.35;
  text-decoration:none;
}
.project-jump a:last-child{border-right:0}
.project-jump a:hover{background:rgba(255,255,255,.08)}
.project-jump span{
  display:grid;
  place-items:center;
  width:2rem;
  height:2rem;
  border:1px solid rgba(255,255,255,.5);
  font-size:var(--mb-text-meta);
}
.project-group{
  padding:clamp(4rem,7vw,7rem) var(--mb-gutter);
  border-bottom:1px solid var(--project-border);
}
.project-group:nth-of-type(even){background:#edf0eb}
.project-group-heading,
.project-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);
  gap:clamp(2rem,7vw,7rem);
  align-items:end;
  margin-bottom:clamp(2rem,4vw,4rem);
}
.project-group-heading h2,
.project-section-heading h2,
.project-method-heading h2,
.project-scope-note h2,
.project-contact h2{
  max-width:16ch;
  margin:0;
  font-family:var(--mb-font-display);
  font-size:var(--mb-title-section);
  line-height:1.02;
  letter-spacing:-.03em;
}
.project-group-heading>p,
.project-method-heading>p:last-child,
.project-contact>div:last-child>p{
  margin:0;
  color:var(--mb-muted);
}
.project-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:var(--project-border);
  border:1px solid var(--project-border);
}
.project-card{
  min-width:0;
  display:flex;
  flex-direction:column;
  background:#fff;
}
.project-card-visual{
  position:relative;
  min-height:260px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--project-accent) 16%,#fff),#f7f7f3 58%);
  color:var(--project-accent);
  text-decoration:none;
}
.project-card-visual::before{
  content:"";
  position:absolute;
  inset:18px;
  border:1px solid color-mix(in srgb,var(--project-accent) 35%,transparent);
}
.project-card-visual::after{
  content:"";
  position:absolute;
  width:70%;
  aspect-ratio:1;
  border:1px solid color-mix(in srgb,var(--project-accent) 25%,transparent);
  border-radius:50%;
  box-shadow:0 0 0 42px color-mix(in srgb,var(--project-accent) 5%,transparent),0 0 0 84px color-mix(in srgb,var(--project-accent) 3%,transparent);
}
.project-card-number{
  position:absolute;
  z-index:2;
  top:1.1rem;
  left:1.1rem;
  color:var(--project-accent);
  font-family:var(--font-mono);
  font-size:var(--mb-text-meta);
  font-weight:800;
}
.project-card-body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:clamp(1.35rem,2.6vw,2rem);
}
.project-card-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.5rem 1rem;
  margin-bottom:1.25rem;
}
.project-card-meta span,
.project-card-meta small{
  font-size:var(--mb-text-meta);
  line-height:1.45;
}
.project-card-meta span{color:var(--project-accent);font-weight:800}
.project-card-meta small{color:var(--mb-muted)}
.project-card h3{
  margin:0 0 1rem;
  font-family:var(--mb-font-display);
  font-size:var(--mb-title-card);
  line-height:1.05;
}
.project-card h3 a{text-decoration:none}
.project-card h3 a:hover{text-decoration:underline}
.project-card p{margin-bottom:1.25rem;color:#4f5d65}
.project-tags{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin:0;
  padding:0;
  list-style:none;
}
.project-tags li{
  width:auto;
  padding:.4rem .62rem;
  border:1px solid color-mix(in srgb,var(--project-accent) 45%,#c8ced1);
  color:color-mix(in srgb,var(--project-accent) 86%,#111);
  font-size:var(--mb-text-meta)!important;
  font-weight:750;
  line-height:1.3!important;
}
.project-card-link{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-top:auto;
  padding-top:1.25rem;
  color:var(--project-accent);
  font-size:var(--mb-text-small);
  font-weight:850;
}
.project-mark{
  position:relative;
  z-index:2;
  width:min(45%,150px);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  color:var(--project-accent);
}
.project-mark i,.project-mark b,.project-mark em{position:absolute;display:block;box-sizing:border-box}
.project-mark i{width:18%;aspect-ratio:1;border:2px solid currentColor;background:#fff;border-radius:50%}
.project-mark i:nth-child(1){top:10%;left:15%}
.project-mark i:nth-child(2){top:16%;right:9%}
.project-mark i:nth-child(3){bottom:10%;left:40%}
.project-mark b{inset:22%;border:3px solid currentColor;transform:rotate(45deg)}
.project-mark em{width:58%;height:2px;background:currentColor;transform:rotate(-24deg)}
.project-mark.is-workflow b{inset:15% 28%;border-radius:2px;transform:none}
.project-mark.is-workflow i{border-radius:2px;background:currentColor}
.project-mark.is-workflow i:nth-child(1){top:18%;left:4%}.project-mark.is-workflow i:nth-child(2){top:40%;right:3%}.project-mark.is-workflow i:nth-child(3){bottom:13%;left:3%}
.project-mark.is-signal b{inset:15%;border-radius:50%;transform:none}.project-mark.is-signal em{width:22%;height:22%;border-radius:50%;background:currentColor}.project-mark.is-signal i{background:transparent}.project-mark.is-signal i:nth-child(1){inset:29%;width:auto;border-color:currentColor}.project-mark.is-signal i:nth-child(2){inset:5%;width:auto;border-color:currentColor}.project-mark.is-signal i:nth-child(3){display:none}
.project-mark.is-map b{inset:8% 14%;border:0;border-left:3px solid currentColor;border-right:3px solid currentColor;transform:skewY(-12deg)}.project-mark.is-map em{width:3px;height:82%;background:currentColor;transform:rotate(12deg)}.project-mark.is-map i{width:14%;background:currentColor;border:0}.project-mark.is-map i:nth-child(1){top:18%;left:18%}.project-mark.is-map i:nth-child(2){top:45%;right:15%}.project-mark.is-map i:nth-child(3){bottom:14%;left:48%}
.project-mark.is-learning b{inset:12% 18%;border-radius:50% 50% 8% 8%;transform:none}.project-mark.is-learning em{bottom:13%;width:46%;height:3px;background:currentColor;transform:none}.project-mark.is-learning i{width:10%;background:currentColor;border:0}.project-mark.is-learning i:nth-child(1){top:28%;left:31%}.project-mark.is-learning i:nth-child(2){top:28%;right:31%}.project-mark.is-learning i:nth-child(3){bottom:31%;left:45%}
.project-mark.is-decision b{inset:8%;border-radius:50%;transform:none}.project-mark.is-decision em{width:3px;height:70%;background:currentColor;transform:rotate(45deg)}.project-mark.is-decision i{width:16%;background:#fff}.project-mark.is-decision i:nth-child(1){top:10%;left:42%}.project-mark.is-decision i:nth-child(2){top:42%;right:8%}.project-mark.is-decision i:nth-child(3){bottom:10%;left:42%}
.project-mark.is-deploy b{inset:18%;border-radius:4px;transform:none}.project-mark.is-deploy em{width:40%;height:40%;border:3px solid currentColor;border-top-color:transparent;border-radius:50%;background:transparent;transform:none}.project-mark.is-deploy i{width:10%;background:currentColor;border:0}.project-mark.is-deploy i:nth-child(1){top:3%;left:45%}.project-mark.is-deploy i:nth-child(2){top:45%;right:3%}.project-mark.is-deploy i:nth-child(3){bottom:3%;left:45%}
.project-method{
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  gap:clamp(2.5rem,7vw,7rem);
  padding:clamp(4rem,8vw,8rem) var(--mb-gutter);
  background:var(--mb-night);
  color:#fff;
}
.project-method-heading{align-self:start;position:sticky;top:7rem}
.project-method-heading>p:first-child{color:#9bc1df}
.project-method-heading>p:last-child{color:#c6d0d6}
.project-method-steps{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.24)}
.project-method-steps li{
  display:grid;
  grid-template-columns:58px 1fr;
  gap:1.2rem;
  padding:1.5rem 0;
  border-bottom:1px solid rgba(255,255,255,.24);
}
.project-method-steps>li>span{font-family:var(--font-mono);font-size:var(--mb-text-meta);color:#9bc1df}
.project-method-steps h3{margin:0 0 .4rem;font-size:var(--mb-title-card);color:#fff}
.project-method-steps p{margin:0;color:#c6d0d6}
.project-scope-note,
.project-contact{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(2rem,7vw,7rem);
  align-items:start;
  padding:clamp(3.5rem,6vw,6rem) var(--mb-gutter);
}
.project-scope-note{background:#e8edf1;border-bottom:1px solid var(--project-border)}
.project-scope-note>p,.project-contact>div:last-child>p{margin:0;color:#4f5d65}
.project-contact{background:#fff}
.project-contact .button{margin-top:1.5rem}

/* Scheda singolo progetto */
.project-detail-hero{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(320px,.65fr);
  gap:clamp(2.5rem,7vw,7rem);
  align-items:center;
  padding:clamp(4rem,8vw,8rem) var(--mb-gutter);
  background:linear-gradient(135deg,color-mix(in srgb,var(--project-accent) 10%,var(--mb-paper)),var(--mb-paper) 58%);
  border-bottom:1px solid var(--project-border);
}
.project-detail-copy h1{
  max-width:12ch;
  margin:0 0 .75rem;
  font-family:var(--mb-font-display);
  font-size:var(--mb-title-page);
  line-height:.98;
  letter-spacing:-.04em;
}
.project-long-name{margin:0 0 1.5rem;color:var(--project-accent);font-size:var(--mb-text-small)!important;font-weight:800}
.project-detail-copy .project-tags{margin-top:1.5rem}
.project-detail-visual{
  position:relative;
  min-height:480px;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:var(--mb-night);
  color:var(--project-accent);
  box-shadow:var(--mb-shadow);
}
.project-detail-visual::before{
  content:"";
  position:absolute;
  inset:24px;
  border:1px solid color-mix(in srgb,var(--project-accent) 60%,transparent);
}
.project-detail-visual::after{
  content:"";
  position:absolute;
  width:78%;
  aspect-ratio:1;
  border:1px solid color-mix(in srgb,var(--project-accent) 50%,transparent);
  border-radius:50%;
  box-shadow:0 0 0 52px color-mix(in srgb,var(--project-accent) 12%,transparent),0 0 0 104px color-mix(in srgb,var(--project-accent) 8%,transparent);
}
.project-detail-visual .project-mark{width:min(45%,190px);color:color-mix(in srgb,var(--project-accent) 82%,#fff)}
.project-detail-code,
.project-detail-status{position:absolute;z-index:3;font-family:var(--font-mono);font-size:var(--mb-text-meta);font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.project-detail-code{top:2.2rem;left:2.2rem;color:#fff}
.project-detail-status{right:2.2rem;bottom:2.2rem;max-width:17ch;color:#fff;text-align:right}
.project-facts{
  margin:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid var(--project-border);
  background:#fff;
}
.project-facts div{padding:1.4rem var(--mb-gutter);border-right:1px solid var(--project-border)}
.project-facts div:last-child{border-right:0}
.project-facts dt{margin-bottom:.45rem;color:var(--project-accent);font-size:var(--mb-text-meta);font-weight:850;line-height:1.35;letter-spacing:.04em;text-transform:uppercase}
.project-facts dd{margin:0;font-size:var(--mb-text-small);font-weight:700;line-height:1.5}
.project-question{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  border-bottom:1px solid var(--project-border);
}
.project-question>div{padding:clamp(3.5rem,7vw,7rem) var(--mb-gutter)}
.project-question>div:first-child{background:#fff;border-right:1px solid var(--project-border)}
.project-question>div:last-child{background:var(--project-soft)}
.project-question h2,
.project-criteria h2,
.project-disclosure h2{
  max-width:15ch;
  margin:0 0 1.25rem;
  font-family:var(--mb-font-display);
  font-size:var(--mb-title-section);
  line-height:1.02;
  letter-spacing:-.025em;
}
.project-question>div>p:last-child,.project-criteria>div>p:last-child{margin-bottom:0;color:#4f5d65}
.project-functions,.project-related{padding:clamp(4rem,7vw,7rem) var(--mb-gutter);border-bottom:1px solid var(--project-border)}
.project-function-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0;
  padding:0;
  border-top:1px solid var(--project-border);
  border-left:1px solid var(--project-border);
  list-style:none;
}
.project-function-grid li{min-width:0;padding:1.4rem;border-right:1px solid var(--project-border);border-bottom:1px solid var(--project-border);background:#fff}
.project-function-grid>li>span{display:inline-block;margin-bottom:2.5rem;color:var(--project-accent);font-family:var(--font-mono);font-size:var(--mb-text-meta);font-weight:800}
.project-function-grid h3{margin:0 0 .75rem;font-size:var(--mb-title-card)}
.project-function-grid p{margin:0;color:#4f5d65;font-size:var(--mb-text-small)!important}
.project-criteria{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
  gap:1px;
  background:var(--project-border);
  border-bottom:1px solid var(--project-border);
}
.project-criteria>div{padding:clamp(3.5rem,7vw,7rem) var(--mb-gutter);background:#edf0eb}
.project-criteria>div:last-child{background:var(--mb-night);color:#fff}
.project-criteria>div:last-child>p:first-child{color:color-mix(in srgb,var(--project-accent) 70%,#fff)}
.project-criteria ul{margin:1.4rem 0 0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.25)}
.project-criteria li{padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.25);font-weight:800}
.project-disclosure{
  display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:1.5rem;
  align-items:start;
  padding:clamp(2.5rem,5vw,4rem) var(--mb-gutter);
  background:color-mix(in srgb,var(--project-accent) 9%,#fff);
  border-bottom:1px solid var(--project-border);
}
.project-disclosure>span{width:52px;height:52px;display:grid;place-items:center;border:2px solid var(--project-accent);border-radius:50%;color:var(--project-accent);font-family:serif;font-size:1.5rem;font-weight:800}
.project-disclosure h2{margin-bottom:.75rem;font-size:clamp(1.6rem,1.3rem + 1.2vw,2.7rem)}
.project-disclosure p{margin:0;color:#4f5d65}
.project-related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--project-border);border-left:1px solid var(--project-border)}
.project-related-grid a{
  min-height:220px;
  display:flex;
  flex-direction:column;
  padding:1.4rem;
  border-right:1px solid var(--project-border);
  border-bottom:1px solid var(--project-border);
  background:#fff;
  text-decoration:none;
}
.project-related-grid a:hover{background:color-mix(in srgb,var(--project-accent) 7%,#fff)}
.project-related-grid span{color:var(--project-accent);font-size:var(--mb-text-meta);font-weight:800}
.project-related-grid strong{margin-top:1.5rem;font-family:var(--mb-font-display);font-size:var(--mb-title-card);line-height:1.05}
.project-related-grid small{margin-top:.65rem;color:var(--mb-muted);font-size:var(--mb-text-meta)}
.project-related-grid i{margin-top:auto;color:var(--project-accent);font-size:1.35rem;font-style:normal}
.project-detail-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:2rem var(--mb-gutter);background:#fff}

@media(max-width:1120px){
  .project-index-hero,.project-detail-hero{grid-template-columns:1fr}
  .project-index-facts{max-width:720px}
  .project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-detail-visual{min-height:420px}
  .project-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .project-facts div:nth-child(2){border-right:0}.project-facts div:nth-child(-n+2){border-bottom:1px solid var(--project-border)}
  .project-function-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .project-jump{grid-template-columns:1fr}
  .project-jump a{border-right:0;border-bottom:1px solid rgba(255,255,255,.2)}
  .project-jump a:last-child{border-bottom:0}
  .project-group-heading,.project-section-heading,.project-method,.project-scope-note,.project-contact{grid-template-columns:1fr}
  .project-method-heading{position:static}
  .project-question,.project-criteria{grid-template-columns:1fr}
  .project-question>div:first-child{border-right:0;border-bottom:1px solid var(--project-border)}
  .project-related-grid{grid-template-columns:1fr}
  .project-related-grid a{min-height:180px}
}
@media(max-width:620px){
  .project-index-hero,.project-group,.project-functions,.project-related,.project-method,.project-scope-note,.project-contact,.project-detail-hero{padding-left:1rem;padding-right:1rem}
  .project-index-hero{padding-top:3.5rem;padding-bottom:3.5rem;background-size:36px 36px}
  .project-index-actions,.project-detail-nav{display:grid;grid-template-columns:1fr}
  .project-index-actions .button,.project-detail-nav .button{width:100%}
  .project-index-facts div{grid-template-columns:1fr;gap:.25rem}
  .project-card-grid{grid-template-columns:1fr}
  .project-card-visual{min-height:220px}
  .project-detail-visual{min-height:340px}
  .project-detail-code{top:1.4rem;left:1.4rem}.project-detail-status{right:1.4rem;bottom:1.4rem}
  .project-facts{grid-template-columns:1fr}
  .project-facts div,.project-facts div:nth-child(2){border-right:0;border-bottom:1px solid var(--project-border)}
  .project-facts div:last-child{border-bottom:0}
  .project-question>div,.project-criteria>div{padding:3.5rem 1rem}
  .project-function-grid{grid-template-columns:1fr}
  .project-disclosure{grid-template-columns:1fr;padding-left:1rem;padding-right:1rem}
  .project-detail-nav{padding-left:1rem;padding-right:1rem}
}
@media(prefers-reduced-motion:reduce){
  .project-card-visual,.project-related-grid a{transition:none}
}
@media(forced-colors:active){
  .project-card-visual,.project-detail-visual,.project-index-facts,.project-card,.project-function-grid li,.project-related-grid a{border:1px solid CanvasText}
  .project-tags li{border:1px solid CanvasText;color:CanvasText}
  .project-mark{color:CanvasText}
}

@media(min-width:1121px){
  .project-group.is-sistemi .project-card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* Marchi ufficiali dei progetti · PROGETTI 002 */
.project-brand{
  position:relative;
  z-index:3;
  width:min(76%,280px);
  height:170px;
  display:grid;
  place-items:center;
  padding:clamp(.8rem,2vw,1.35rem);
  border:1px solid color-mix(in srgb,var(--project-accent) 28%,rgba(32,43,53,.16));
  background:rgba(255,255,255,.95);
  box-shadow:0 18px 42px rgba(32,43,53,.12);
  box-sizing:border-box;
}
.project-brand img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center;
}
.project-brand--emblem{width:min(62%,205px);height:205px;padding:.6rem;border-radius:50%}
.project-brand--wide{width:min(84%,340px);height:145px}
.project-brand--stacked{width:min(68%,235px);height:205px}
.project-brand--mark{width:min(58%,180px);height:180px;padding:1.2rem;border-radius:1.25rem}
.project-brand--fallback{
  width:min(70%,230px);
  height:205px;
  gap:.7rem;
  align-content:center;
  color:var(--project-accent);
}
.project-brand--fallback .project-mark{width:96px}
.project-brand-fallback-name{
  max-width:15ch;
  color:var(--mb-ink);
  font-family:var(--mb-font-display);
  font-size:clamp(1.15rem,1rem + .7vw,1.65rem);
  font-weight:850;
  line-height:1.05;
  text-align:center;
}
.project-card-visual .project-mark{z-index:4}
.project-detail-visual .project-brand{
  width:min(78%,470px);
  height:280px;
  padding:clamp(1.2rem,3vw,2rem);
  border-color:color-mix(in srgb,var(--project-accent) 40%,rgba(255,255,255,.3));
  background:rgba(255,255,255,.97);
  box-shadow:0 26px 70px rgba(0,0,0,.28);
}
.project-detail-visual .project-brand--emblem{width:min(62%,285px);height:285px;padding:.75rem}
.project-detail-visual .project-brand--wide{width:min(84%,500px);height:225px}
.project-detail-visual .project-brand--stacked{width:min(68%,310px);height:300px}
.project-detail-visual .project-brand--mark{width:min(58%,240px);height:240px;padding:1.5rem}
.project-detail-visual .project-brand--fallback{width:min(66%,280px);height:270px;background:rgba(255,255,255,.96)}
.project-related-grid .project-brand{
  width:132px;
  height:82px;
  min-height:82px;
  margin:0 0 1.15rem;
  padding:.55rem;
  border-color:color-mix(in srgb,var(--project-accent) 22%,rgba(32,43,53,.12));
  box-shadow:none;
}
.project-related-grid .project-brand--emblem{width:86px;height:86px;border-radius:50%}
.project-related-grid .project-brand--stacked{width:96px;height:96px}
.project-related-grid .project-brand--mark{width:82px;height:82px;border-radius:.8rem}
.project-related-grid .project-brand--fallback{width:116px;height:88px;display:flex;gap:.5rem;padding:.55rem}
.project-related-grid .project-brand--fallback .project-mark{width:42px}
.project-related-grid .project-brand-fallback-name{font-size:.82rem;text-align:left}
@media(max-width:620px){
  .project-brand{height:150px}
  .project-brand--emblem{width:175px;height:175px}
  .project-brand--wide{width:min(88%,310px);height:125px}
  .project-brand--stacked{width:195px;height:180px}
  .project-brand--mark{width:155px;height:155px}
  .project-detail-visual .project-brand{height:220px}
  .project-detail-visual .project-brand--emblem{width:220px;height:220px}
  .project-detail-visual .project-brand--wide{width:min(88%,330px);height:165px}
  .project-detail-visual .project-brand--stacked{width:225px;height:225px}
  .project-detail-visual .project-brand--mark{width:190px;height:190px}
}
@media(forced-colors:active){
  .project-brand{border:2px solid CanvasText;background:Canvas}
  .project-brand-fallback-name{color:CanvasText}
}
/* PROGETTI QUALITY 001 · sezione con un solo progetto */
.project-group.is-comunita{
  background:
    linear-gradient(135deg,#eef7fb 0%,#f6f6f1 58%,#eef3f5 100%);
}
.project-group.is-comunita .project-group-heading{
  align-items:start;
}
.project-group.is-comunita .project-card-grid{
  grid-template-columns:1fr;
  gap:0;
  border:0;
  background:transparent;
}
.project-group.is-comunita .project-card{
  display:grid;
  grid-template-columns:minmax(360px,.78fr) minmax(0,1.22fr);
  min-height:520px;
  border:1px solid var(--project-border);
  background:#fff;
}
.project-group.is-comunita .project-card-visual{
  min-height:100%;
  border-right:1px solid var(--project-border);
  background:
    radial-gradient(circle at 50% 46%, rgba(1,181,255,.14) 0, rgba(1,181,255,.09) 24%, rgba(4,19,31,0) 25%),
    linear-gradient(145deg,#eaf5fb 0%,#daeaf6 48%,#f2f7fa 100%);
}
.project-group.is-comunita .project-card-visual::before{
  inset:28px;
  border-color:color-mix(in srgb,var(--project-accent) 32%,#b9cad6);
}
.project-group.is-comunita .project-card-visual::after{
  width:62%;
  box-shadow:
    0 0 0 58px color-mix(in srgb,var(--project-accent) 7%,transparent),
    0 0 0 116px color-mix(in srgb,var(--project-accent) 3%,transparent);
}
.project-group.is-comunita .project-card-body{
  justify-content:center;
  padding:clamp(2.4rem,5vw,5rem);
}
.project-group.is-comunita .project-card-meta{
  margin-bottom:2rem;
}
.project-group.is-comunita .project-card h3{
  margin-bottom:1.3rem;
  font-size:clamp(3rem,6vw,6rem);
  letter-spacing:-.045em;
}
.project-group.is-comunita .project-card p{
  max-width:62ch;
  margin-bottom:1.7rem;
  font-size:clamp(1.05rem,1.15vw,1.27rem);
  line-height:1.65;
}
.project-group.is-comunita .project-card-link{
  max-width:320px;
}
.project-group.is-comunita .project-brand--stacked{
  width:min(72%,360px);
  height:300px;
  padding:1.4rem;
  border:1px solid color-mix(in srgb,var(--project-accent) 40%,#c9d7e1);
  background:
    linear-gradient(180deg,#ffffff 0%,#f6fbff 100%);
  box-shadow:
    0 26px 56px rgba(18,36,51,.12),
    inset 0 0 0 1px rgba(255,255,255,.75);
}
.project-group.is-comunita .project-brand--stacked img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.project-group.is-comunita .project-card-number{
  font-size:clamp(.85rem,1vw,1rem);
}

@media(max-width:900px){
  .project-group.is-comunita .project-card{
    grid-template-columns:1fr;
    min-height:0;
  }
  .project-group.is-comunita .project-card-visual{
    min-height:340px;
    border-right:0;
    border-bottom:1px solid var(--project-border);
  }
  .project-group.is-comunita .project-card h3{
    font-size:clamp(2.7rem,10vw,4.8rem);
  }
}
@media(max-width:620px){
  .project-group.is-comunita .project-card-visual{
    min-height:260px;
  }
  .project-group.is-comunita .project-card-body{
    padding:1.5rem;
  }
  .project-group.is-comunita .project-brand--stacked{
    width:min(68%,250px);
    height:210px;
  }
}
.project-group.is-comunita .project-card-visual .project-brand-wrap{
  position:relative;
  z-index:2;
}
.project-group.is-comunita .project-card-visual .project-brand-wrap::before{
  content:"";
  position:absolute;
  inset:-18px;
  border:1px solid rgba(1,181,255,.18);
  background:rgba(255,255,255,.42);
  backdrop-filter:blur(2px);
  z-index:-1;
}

.project-detail-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.project-detail-actions .button{width:auto}
.project-group.is-rete-cnsbii{background:#eef4f1}
.project-group.is-territorio{background:#f6f4ee}
.project-group.is-sistemi{background:#eef1f5}
@media(max-width:720px){.project-detail-actions .button{width:100%;text-align:center}}

/* LOGHI OC E IGNIVIA 001
   Correzione dei marchi nelle schede, nei dettagli e su smartphone. */

/* Osservatori Civici: il nuovo SVG è trasparente, quindi non deve essere
   nuovamente racchiuso in un quadrato bianco. */
.project-card--osservatori-civici .project-brand--emblem,
.project-detail-page--osservatori-civici .project-brand--emblem{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.project-card--osservatori-civici .project-brand--emblem{
  width:min(72%,235px);
  height:235px;
}
.project-detail-page--osservatori-civici .project-detail-visual .project-brand--emblem{
  width:min(68%,310px);
  height:310px;
}
.project-card--osservatori-civici .project-brand img,
.project-detail-page--osservatori-civici .project-brand img{
  filter:drop-shadow(0 18px 26px rgba(10,36,54,.15));
}

/* IGNIVIA è un logo negativo: parola e parti del simbolo sono bianche.
   Viene quindi presentato direttamente su un fondo blu notte. */
.project-card--ignivia .project-card-visual,
.project-detail-page--ignivia .project-detail-visual{
  background:
    radial-gradient(circle at 50% 42%,rgba(214,80,50,.20),transparent 42%),
    linear-gradient(145deg,#071522 0%,#0b2434 62%,#102f40 100%);
}
.project-card--ignivia .project-card-visual::before,
.project-detail-page--ignivia .project-detail-visual::before{
  border-color:rgba(255,83,54,.48);
}
.project-card--ignivia .project-card-visual::after,
.project-detail-page--ignivia .project-detail-visual::after{
  border-color:rgba(255,255,255,.14);
  box-shadow:
    0 0 0 42px rgba(214,80,50,.08),
    0 0 0 84px rgba(255,255,255,.035);
}
.project-card--ignivia .project-card-number{
  color:#fff;
}
.project-card--ignivia .project-brand--wide,
.project-detail-page--ignivia .project-detail-visual .project-brand--wide{
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.project-card--ignivia .project-brand--wide{
  width:min(82%,370px);
  height:220px;
}
.project-detail-page--ignivia .project-detail-visual .project-brand--wide{
  width:min(84%,520px);
  height:340px;
}
.project-card--ignivia .project-brand img,
.project-detail-page--ignivia .project-brand img{
  filter:drop-shadow(0 20px 35px rgba(0,0,0,.30));
}

@media(max-width:620px){
  .project-card--osservatori-civici .project-card-visual{
    min-height:260px;
  }
  .project-card--osservatori-civici .project-brand--emblem{
    width:195px;
    height:195px;
  }
  .project-detail-page--osservatori-civici .project-detail-visual .project-brand--emblem{
    width:235px;
    height:235px;
  }
  .project-card--ignivia .project-card-visual{
    min-height:285px;
  }
  .project-card--ignivia .project-brand--wide{
    width:min(88%,310px);
    height:210px;
  }
  .project-detail-page--ignivia .project-detail-visual .project-brand--wide{
    width:min(88%,340px);
    height:255px;
  }
}


/* IGNIVIA OFFICIAL 002
   Sostituisce la resa negativa precedente con il marchio ufficiale.
   Obiettivi: colori corretti, pannello chiaro, wordmark leggibile,
   niente tagli su smartphone. */
.project-card--ignivia .project-card-visual,
.project-detail-page--ignivia .project-detail-visual{
  background:
    radial-gradient(circle at 50% 34%,rgba(230,69,47,.12),transparent 34%),
    linear-gradient(135deg,#f6efec 0%,#f8f6f1 58%,#f3f0ea 100%);
}
.project-card--ignivia .project-card-visual::before,
.project-detail-page--ignivia .project-detail-visual::before{
  border-color:rgba(192,82,56,.26);
}
.project-card--ignivia .project-card-visual::after,
.project-detail-page--ignivia .project-detail-visual::after{
  border-color:rgba(34,73,119,.12);
  box-shadow:
    0 0 0 42px rgba(34,73,119,.03),
    0 0 0 84px rgba(192,82,56,.03);
}
.project-card--ignivia .project-card-number{color:#b64e36;}
.project-card--ignivia .project-brand--wide,
.project-detail-page--ignivia .project-detail-visual .project-brand--wide{
  padding:.95rem 1rem 1.15rem;
  border:1px solid rgba(26,53,88,.14);
  background:rgba(255,255,255,.985);
  box-shadow:0 22px 46px rgba(31,42,61,.12);
  border-radius:0;
}
.project-card--ignivia .project-brand--wide{
  width:min(84%,372px);
  height:246px;
}
.project-detail-page--ignivia .project-detail-visual .project-brand--wide{
  width:min(86%,560px);
  height:390px;
  padding:1.2rem 1.35rem 1.4rem;
}
.project-card--ignivia .project-brand img,
.project-detail-page--ignivia .project-brand img{
  filter:none;
  object-position:center center;
}
@media(max-width:620px){
  .project-card--ignivia .project-card-visual{min-height:332px;}
  .project-card--ignivia .project-brand--wide{
    width:min(90%,318px);
    height:234px;
    padding:.85rem .95rem 1.05rem;
  }
  .project-detail-page--ignivia .project-detail-visual .project-brand--wide{
    width:min(90%,356px);
    height:282px;
    padding:1rem 1rem 1.15rem;
  }
}


/* PROGETTI CONSOLIDAMENTO 002
   Correzioni puntuali richieste: Osservatori Civici su fondo bianco,
   IDRA meglio impaginata, IGNIVIA riallineata alle altre schede. */
.project-card--osservatori-civici .project-card-visual,
.project-detail-page--osservatori-civici .project-detail-visual{
  background:
    radial-gradient(circle at 50% 42%,rgba(39,111,119,.14),transparent 34%),
    linear-gradient(145deg,#06111a 0%,#0d2230 60%,#133244 100%);
}
.project-card--osservatori-civici .project-brand--emblem,
.project-detail-page--osservatori-civici .project-detail-visual .project-brand--emblem{
  padding:.65rem;
  border:1px solid rgba(255,255,255,.78);
  border-radius:50%;
  background:rgba(255,255,255,.985);
  box-shadow:0 22px 56px rgba(7,24,40,.18);
}
.project-card--osservatori-civici .project-brand--emblem{
  width:min(70%,232px);
  height:232px;
}
.project-detail-page--osservatori-civici .project-detail-visual .project-brand--emblem{
  width:min(64%,302px);
  height:302px;
  padding:.82rem;
}
.project-card--osservatori-civici .project-brand img,
.project-detail-page--osservatori-civici .project-brand img{
  filter:none;
}

.project-card--idra-cnsbii .project-card-visual,
.project-detail-page--idra-cnsbii .project-detail-visual{
  background:
    radial-gradient(circle at 50% 38%,rgba(39,107,144,.10),transparent 34%),
    linear-gradient(135deg,#eef4f8 0%,#f8fafc 62%,#edf3f6 100%);
}
.project-card--idra-cnsbii .project-card-visual::before,
.project-detail-page--idra-cnsbii .project-detail-visual::before{
  border-color:rgba(39,107,144,.26);
}
.project-card--idra-cnsbii .project-card-visual::after,
.project-detail-page--idra-cnsbii .project-detail-visual::after{
  border-color:rgba(39,107,144,.12);
  box-shadow:
    0 0 0 40px rgba(39,107,144,.04),
    0 0 0 80px rgba(39,107,144,.03);
}
.project-card--idra-cnsbii .project-brand--stacked{
  width:min(74%,252px);
  height:252px;
  padding:1rem 1.05rem 1.1rem;
}
.project-detail-page--idra-cnsbii .project-detail-visual .project-brand--stacked{
  width:min(74%,352px);
  height:332px;
  padding:1.2rem 1.3rem 1.35rem;
}
.project-card--idra-cnsbii .project-brand img,
.project-detail-page--idra-cnsbii .project-brand img{
  object-position:center center;
}

.project-card--ignivia .project-card-visual{
  min-height:260px!important;
}
.project-card--ignivia .project-brand--wide{
  width:min(76%,300px)!important;
  height:196px!important;
  padding:.9rem 1rem 1rem!important;
}
.project-detail-page--ignivia .project-detail-visual .project-brand--wide{
  width:min(82%,500px)!important;
  height:286px!important;
  padding:1.08rem 1.2rem 1.24rem!important;
}
.project-card--ignivia .project-brand img,
.project-detail-page--ignivia .project-brand img{
  object-position:center center!important;
}

@media(max-width:620px){
  .project-card--osservatori-civici .project-brand--emblem{
    width:196px;
    height:196px;
  }
  .project-detail-page--osservatori-civici .project-detail-visual .project-brand--emblem{
    width:236px;
    height:236px;
  }
  .project-card--idra-cnsbii .project-brand--stacked{
    width:210px;
    height:214px;
  }
  .project-detail-page--idra-cnsbii .project-detail-visual .project-brand--stacked{
    width:248px;
    height:252px;
  }
  .project-card--ignivia .project-card-visual{
    min-height:292px!important;
  }
  .project-card--ignivia .project-brand--wide{
    width:min(88%,292px)!important;
    height:188px!important;
  }
  .project-detail-page--ignivia .project-detail-visual .project-brand--wide{
    width:min(90%,332px)!important;
    height:214px!important;
  }
}
