/* Depurazione: un solo asse per titoli e testi, reportage e archivio fotografico. */
body:has(.water-page) .page-hero { display:grid; grid-template-columns:1.08fr 1fr; gap:clamp(24px,3vw,48px); align-items:center; background:var(--paper); padding-block:32px 52px; border-bottom:1px solid var(--line); }
body:has(.water-page) .page-hero-copy { width:100%; max-width:none; margin:0; padding:0; }
body:has(.water-page) .page-hero .eyebrow { display:none; }
body:has(.water-page) .page-hero h1 { max-width:18ch; margin-block:16px 26px; }
body:has(.water-page) .page-hero .page-lead { max-width:48ch; margin:0; }
.water-index { display:flex; flex-wrap:wrap; gap:4px 28px; border-block:1px solid var(--line); padding-block:12px; }
.water-index a { display:inline-flex; align-items:center; min-height:44px; font-size:var(--type-ui); text-decoration:none; }
.water-index a:hover { text-decoration:underline; text-underline-offset:5px; }
.water-intro,.water-reportage,.water-archive,.water-integration { padding-block:clamp(40px,5vw,68px); scroll-margin-top:0; }
.water-reportage,.water-archive,.water-integration { border-top:1px solid var(--line); }
.water-heading { max-width:960px; margin:0 0 28px; }
.water-heading .eyebrow { margin:0 0 14px; }
.water-heading :is(h2,h3) { margin:0 0 22px; font-size:var(--type-section); font-weight:400; line-height:1.16; letter-spacing:-.035em; }
.water-heading p:not(.eyebrow) { margin:0 0 18px; font-size:var(--type-body); line-height:1.65; text-wrap:pretty; }
.water-heading .water-status { font-size:var(--type-label); margin-top:22px; color:var(--ink); }
.water-intro .water-heading :is(h2,h3) { font-size:var(--type-card); }
.water-intro .water-heading { max-width:900px; margin-bottom:24px; }
.water-capabilities { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; margin:30px 0 24px; }
.water-capabilities article { border-top:1px solid var(--line); padding-top:20px; }
.water-capabilities h3,.water-work h4 { font-size:var(--type-card); font-weight:400; line-height:1.25; letter-spacing:-.025em; margin:0 0 14px; }
.water-capabilities p { font-size:var(--type-body); margin:0; line-height:1.65; }
.water-photo-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px 20px; }
.water-photo { display:flex; flex-direction:column; min-width:0; text-decoration:none; }
.water-photo img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.water-photo-grid > :first-child { grid-column:span 2; grid-row:span 2; }
.water-photo-grid > :first-child img { flex:1; min-height:0; height:100%; aspect-ratio:auto; object-fit:cover; }
.water-photo-caption { display:flex; justify-content:space-between; gap:14px; font-size:var(--type-label); line-height:1.5; padding-top:10px; }
.water-photo-caption > span { flex:none; }
.water-photo:hover .water-photo-caption { text-decoration:underline; text-underline-offset:4px; }
.water-album-footer { display:flex; justify-content:space-between; gap:18px; align-items:baseline; padding-top:24px; }
.water-album-footer p { margin:0; font-size:var(--type-label); }
.water-page .text-link { font-size:var(--type-ui); line-height:1.5; }
.water-work-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:44px 24px; }
.water-work { grid-column:span 2; min-width:0; }
.water-work:nth-child(-n+2) { grid-column:span 3; }
.water-work > .water-photo img { aspect-ratio:3/2; }
.water-work-copy { padding-top:20px; }
.water-work-copy > p { font-size:var(--type-ui); line-height:1.6; margin:0 0 14px; }
.water-work-copy .water-client { font-size:var(--type-label); }
.water-work-copy .text-link { margin-top:4px; }
.water-integration .water-heading { margin-bottom:18px; }
.water-page :is(a,button):focus-visible { outline:2px solid currentColor; outline-offset:5px; }
@media(max-width:900px) {
  .water-capabilities { gap:24px; }
  .water-work-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .water-work,.water-work:nth-child(-n+2) { grid-column:span 1; }
}
@media(max-width:600px) {
  body:has(.water-page) .page-hero { padding-block:24px 28px; }
  .water-index { gap:0 20px; }
  .water-capabilities { grid-template-columns:1fr; gap:22px; }
  .water-heading { margin-bottom:24px; }
  .water-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 14px; }
  .water-photo-grid > :first-child { grid-column:1/-1; grid-row:auto; }
  .water-photo-grid > :first-child img { height:auto; flex:none; aspect-ratio:4/3; }
  .water-photo-grid > :last-child { grid-column:1/-1; }
  .water-photo-caption { gap:6px; font-size:13px; }
  .water-album-footer { display:block; padding-top:20px; }
  .water-album-footer p { margin-bottom:12px; }
  .water-work-grid { grid-template-columns:1fr; gap:32px; }
  .water-work > .water-photo .water-photo-caption { font-size:var(--type-label); }
}

/* Attività prima, realizzazioni in un'unica area distinta. */
.water-intro { padding-top:24px; }
.water-integration { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(28px,4vw,64px); align-items:center; padding-top:44px; }
.water-integration .water-heading h2 { font-size:var(--type-card); }
.water-projects { background:var(--white); border-top:1px solid var(--line); }
.water-projects-heading { padding-block:clamp(44px,5vw,72px) 0; }
.water-projects-heading > .eyebrow { margin:0 0 14px; }
.water-projects-heading h2 { font-size:var(--type-display); line-height:1.08; font-weight:400; letter-spacing:-.04em; margin:0 0 22px; }
.water-projects-heading > p:not(.eyebrow) { max-width:800px; font-size:var(--type-body); line-height:1.65; margin:0 0 30px; }
.water-projects-heading .water-index { border-bottom:0; }
.water-projects .water-reportage:first-of-type { border-top:0; }

/* La geometria appartiene all'attività; nessun richiamo a singoli cantieri. */
.water-hero-art { color:var(--ink); min-width:0; }
.water-hero-art svg { display:block; width:100%; height:auto; overflow:visible; }
.water-hero-art :is(path,circle) { vector-effect:non-scaling-stroke; }
.water-art-guides { opacity:.13; stroke-width:1; }
.water-art-surface { fill:currentColor; fill-opacity:.055; stroke:none; }
.water-art-secondary { fill-opacity:.09; }
.water-art-rim { opacity:.64; }
.water-art-channels { opacity:.48; }
.water-art-bridge { opacity:.72; }
.water-art-bridge circle { fill:var(--paper); }
.water-art-water { opacity:.3; }
.water-art-nodes { fill:var(--ink); stroke:none; opacity:.55; }
.water-art-flow { stroke-dasharray:1; animation:water-flow-trace 2.4s cubic-bezier(.2,.65,.3,1) both; }
.water-hero-scroll { display:inline-flex; align-items:center; gap:28px; margin-top:32px; padding-block:10px; font-size:var(--type-ui); text-decoration:none; border-bottom:1px solid var(--line); }
.water-hero-scroll span { font-size:24px; line-height:1; }
.water-hero-scroll:hover { border-color:currentColor; }
.water-hero-scroll:focus-visible { outline:2px solid currentColor; outline-offset:5px; }
@keyframes water-flow-trace { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@media(max-width:1000px) {
  body:has(.water-page) .page-hero { grid-template-columns:1fr; gap:20px; }
  body:has(.water-page) .page-hero h1 { max-width:22ch; }
  .water-hero-art { width:min(100%,560px); justify-self:end; margin-top:-12px; }
}
@media(max-width:600px) {
  body:has(.water-page) .page-hero { gap:14px; padding-bottom:30px; }
  .water-hero-art { width:100%; margin-top:0; }
  .water-hero-scroll { margin-top:16px; }
}
@media(prefers-reduced-motion:reduce) { .water-art-flow { animation:none; } }
body.motion-off .water-art-flow { animation:none; }

/* Geometrie delle competenze: vasche, manutenzione e strutture coordinate. */
.water-graphic { color:var(--ink); min-width:0; }
.water-graphic svg { display:block; width:100%; height:auto; }
.water-graphic :is(path,circle) { vector-effect:non-scaling-stroke; }
.water-graphic-fill { fill:currentColor; fill-opacity:.05; stroke-opacity:.55; }
.water-graphic-guide { stroke-dasharray:3 6; opacity:.23; }
.water-graphic-faint { opacity:.35; }
.water-graphic-pipe { stroke-width:2; }
.water-capabilities .water-graphic { width:100%; max-width:320px; height:148px; margin:0 0 22px; opacity:.75; }
.water-capabilities .water-graphic svg { height:100%; }
.water-graphic-integration { opacity:.65; }
@media(max-width:900px) {
  .water-integration { grid-template-columns:1fr; gap:24px; }
  .water-graphic-integration { width:min(100%,540px); justify-self:center; }
  .water-capabilities .water-graphic { height:120px; }
}
@media(max-width:600px) {
  .water-capabilities article { position:relative; padding-top:18px; }
  .water-capabilities .water-graphic { height:116px; width:200px; margin:0 0 16px; }
  .water-graphic-integration { margin-top:0; }
}
