/* CM generated bundle: original cascade order preserved. */

/* assets/infrastrutture.css */
:root {
  --paper: #f4f2eb;
  --paper-deep: #e8e6dd;
  --ink: #132d31;
  --ink-soft: #496063;
  --water: #7ab9b8;
  --water-bright: #b9dcdc;
  --water-deep: #2c6870;
  --signal: #e9833f;
  --line: rgba(19, 45, 49, 0.2);
  --white: #fffefa;
  --display: Georgia, "Times New Roman", serif;
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --shell: min(1280px, calc(100vw - 64px));
  --header-height: 104px;
  color-scheme: light;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

body.menu-open {
  overflow: hidden;
}

img,
video {
  display: block;
  width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  color: inherit;
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

:focus-visible {
  outline: 3px solid var(--signal);
  outline-offset: 4px;
}

[hidden] {
  display: none !important;
}

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  z-index: 200;
  top: 10px;
  left: 10px;
  padding: 12px 18px;
  transform: translateY(-160%);
  background: var(--white);
  color: var(--ink);
  font-weight: 700;
}

.skip-link:focus {
  transform: translateY(0);
}

.section-shell {
  width: var(--shell);
  margin-inline: auto;
}

.preview-bar {
  position: relative;
  z-index: 120;
  display: flex;
  min-height: 38px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 7px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  background: #10282c;
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.25;
  text-transform: uppercase;
}

.preview-bar p {
  display: flex;
  flex: none;
  align-items: center;
  gap: 9px;
  margin: 0;
}

.preview-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--signal);
  box-shadow: 0 0 0 4px rgba(233, 131, 63, 0.16);
}

.preview-bar nav {
  display: flex;
  align-items: center;
  gap: 22px;
}

.preview-bar a {
  border-bottom: 1px solid transparent;
  transition: color 180ms ease, border-color 180ms ease;
}

.preview-bar a:hover,
.preview-bar a[aria-current="page"] {
  border-color: currentColor;
  color: var(--white);
}

.site-header {
  position: absolute;
  z-index: 100;
  top: 38px;
  left: 0;
  display: flex;
  width: 100%;
  min-height: var(--header-height);
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  color: var(--white);
}

.brand {
  display: inline-flex;
  flex: none;
  align-items: center;
  padding: 8px;
  background: #fff;
  line-height: 0;
}

.brand-logo {
  width: 180px;
  height: auto;
  object-fit: contain;
  filter: none;
}

.site-navigation {
  display: flex;
  align-items: center;
  gap: clamp(10px, 1.2vw, 22px);
  font-size: 11px;
  font-weight: 600;
}

.site-navigation > a:not(.nav-cta),
.nav-group > a {
  position: relative;
  padding-block: 8px;
}

.site-navigation > a:not(.nav-cta)::after,
.nav-group > a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 2px;
  left: 0;
  height: 1px;
  transform: scaleX(0);
  transform-origin: right;
  background: currentColor;
  transition: transform 220ms ease;
}

.site-navigation > a:not(.nav-cta):hover::after,
.nav-group > a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.nav-group {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
}

.submenu-toggle {
  display: grid;
  width: 22px;
  height: 22px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  font-size: 15px;
  line-height: 1;
}

.submenu-toggle > span:first-child {
  transition: transform 180ms ease;
}

.submenu-toggle[aria-expanded="true"] > span:first-child {
  transform: rotate(45deg);
}

.submenu {
  position: absolute;
  z-index: 130;
  top: calc(100% + 20px);
  left: -18px;
  width: 270px;
  margin: 0;
  padding: 10px 18px;
  background: var(--white);
  color: var(--ink);
  box-shadow: 0 18px 45px rgba(5, 27, 30, 0.2);
  list-style: none;
}

.submenu li + li {
  border-top: 1px solid var(--line);
}

.submenu a {
  display: block;
  padding: 13px 0;
  font-size: 12px;
  line-height: 1.35;
}

.nav-cta {
  display: inline-flex;
  min-height: 46px;
  align-items: center;
  gap: 14px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.58);
  transition: background 180ms ease, color 180ms ease;
}

.nav-cta:hover {
  background: var(--white);
  color: var(--ink);
}

.menu-toggle {
  display: none;
  align-items: center;
  gap: 12px;
  padding: 8px 0 8px 12px;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.menu-glyph {
  display: grid;
  width: 30px;
  height: 30px;
  place-content: center;
  gap: 6px;
  border: 1px solid currentColor;
  border-radius: 50%;
}

.menu-glyph i {
  display: block;
  width: 12px;
  height: 1px;
  background: currentColor;
  transition: transform 180ms ease;
}

.menu-toggle[aria-expanded="true"] .menu-glyph i:first-child {
  transform: translateY(3.5px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] .menu-glyph i:last-child {
  transform: translateY(-3.5px) rotate(-45deg);
}

.hero {
  position: relative;
  min-height: clamp(720px, 96vh, 960px);
  overflow: hidden;
  background: var(--water-deep);
  color: var(--white);
}

.hero-media,
.hero-wash {
  position: absolute;
  inset: 0;
}

.hero-media video {
  height: 100%;
  object-fit: cover;
}

.hero-wash {
  background:
    linear-gradient(90deg, rgba(8, 34, 38, 0.83) 0%, rgba(8, 34, 38, 0.44) 48%, rgba(8, 34, 38, 0.08) 78%),
    linear-gradient(0deg, rgba(8, 30, 33, 0.53) 0%, transparent 42%);
}

.hero-copy {
  position: relative;
  z-index: 2;
  width: min(840px, calc(100% - 64px));
  padding-top: clamp(210px, 25vh, 270px);
  margin-left: max(32px, calc((100vw - 1280px) / 2));
}

.eyebrow {
  margin: 0 0 25px;
  color: var(--water-deep);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.eyebrow.light {
  color: var(--water-bright);
}

.hero h1,
.manifesto h2,
.competences h2,
.projects h2,
.method h2,
.company h2,
.contact h2 {
  margin: 0;
  font-family: var(--display);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.92;
}

.hero h1 {
  max-width: 1040px;
  font-size: clamp(58px, 7vw, 112px);
}

.hero-lede {
  max-width: 630px;
  margin: 38px 0 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: clamp(17px, 1.45vw, 22px);
  line-height: 1.5;
}

.hero-actions {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-top: 38px;
}

.button {
  display: inline-flex;
  min-height: 54px;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 0 20px;
  font-size: 13px;
  font-weight: 700;
}

.button-light {
  background: var(--white);
  color: var(--ink);
  transition: background 180ms ease, color 180ms ease;
}

.button-light:hover {
  background: var(--water-bright);
}

.text-link {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  padding-block: 6px;
  border-bottom: 1px solid currentColor;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  transition: gap 180ms ease;
}

.text-link:hover {
  gap: 28px;
}

.light-link {
  color: var(--white);
}

.hero-index {
  position: absolute;
  z-index: 2;
  right: 32px;
  bottom: 34px;
  display: flex;
  gap: 18px;
  color: rgba(255, 255, 255, 0.67);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.hero-index span + span::before {
  content: "/";
  margin-right: 18px;
  color: var(--signal);
}

.video-toggle {
  position: absolute;
  z-index: 3;
  right: 32px;
  top: 148px;
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 10px;
  padding: 0 13px 0 10px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 30px;
  background: rgba(10, 34, 37, 0.28);
  color: var(--white);
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  backdrop-filter: blur(8px);
}

.video-icon {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: var(--white);
  color: var(--ink);
  font-size: 8px;
}

.manifesto {
  display: grid;
  grid-template-columns: 90px minmax(0, 1.4fr) minmax(260px, 0.65fr);
  gap: clamp(30px, 5vw, 84px);
  padding-block: clamp(100px, 12vw, 180px);
}

.section-number {
  margin: 7px 0 0;
  color: var(--signal);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.manifesto h2 {
  max-width: 760px;
  font-size: clamp(52px, 6.1vw, 96px);
}

.manifesto-copy {
  padding-top: 42px;
  color: var(--ink-soft);
  font-size: 17px;
}

.manifesto-copy p {
  margin: 0 0 21px;
}

.manifesto-copy .text-link {
  margin-top: 18px;
  color: var(--ink);
}

.competences {
  padding: clamp(90px, 10vw, 150px) 0 0;
  background: var(--white);
}

.competences-intro {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: clamp(30px, 5vw, 84px);
  margin-bottom: 80px;
}

.competences h2,
.projects h2 {
  font-size: clamp(54px, 6.6vw, 104px);
}

.competence-ledger {
  border-top: 1px solid var(--ink);
}

.competence-row {
  display: grid;
  grid-template-columns: 70px minmax(280px, 1.15fr) minmax(210px, 0.75fr) 150px auto;
  gap: clamp(18px, 2.6vw, 42px);
  align-items: center;
  min-height: 195px;
  border-bottom: 1px solid var(--line);
  transition: padding 240ms ease, background 240ms ease;
}

.competence-row:hover {
  padding-inline: 18px;
  background: rgba(122, 185, 184, 0.12);
}

.competence-id {
  margin: 0;
  color: var(--signal);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.competence-row h3 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(31px, 3vw, 48px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1.06;
}

.competence-row > p:nth-of-type(2) {
  max-width: 390px;
  margin: 0;
  color: var(--ink-soft);
}

.competence-row > a {
  justify-self: end;
  padding: 8px 0;
  border-bottom: 1px solid var(--ink);
  font-size: 12px;
  font-weight: 700;
}

.competence-row > a span {
  margin-left: 18px;
}

.competence-visual {
  width: 150px;
  height: 108px;
  margin: 0;
  overflow: hidden;
  background: var(--paper-deep);
}

.competence-visual img {
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}

.competence-row:hover .competence-visual img {
  transform: scale(1.045);
}

.prefab-showcase {
  margin-top: clamp(90px, 11vw, 160px);
  padding-block: clamp(85px, 10vw, 145px);
  background: var(--paper-deep);
}

.prefab-heading {
  display: grid;
  grid-template-columns: minmax(180px, 0.45fr) minmax(0, 1.55fr);
  gap: 40px;
  align-items: end;
  margin-bottom: 60px;
}

.prefab-heading .eyebrow {
  margin-bottom: 9px;
}

.prefab-heading h3 {
  max-width: 930px;
  margin: 0;
  font-family: var(--display);
  font-size: clamp(48px, 5.8vw, 88px);
  font-weight: 400;
  letter-spacing: -0.05em;
  line-height: 0.98;
}

.prefab-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(2, minmax(285px, 1fr)) auto;
  gap: 22px;
}

.prefab-item {
  position: relative;
  min-height: 285px;
  overflow: hidden;
  background: var(--ink);
  color: var(--white);
  scroll-margin-top: calc(var(--header-height) + 60px);
}

.prefab-item > img {
  height: 100%;
  object-fit: cover;
  transition: transform 650ms ease;
}

.prefab-item:hover > img {
  transform: scale(1.035);
}

.prefab-item > div {
  position: absolute;
  z-index: 2;
  inset: auto 0 0;
  padding: clamp(24px, 3.2vw, 46px);
  background: linear-gradient(0deg, rgba(8, 29, 32, 0.88), transparent);
}

.prefab-item span {
  color: var(--water-bright);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.prefab-item h4 {
  margin: 11px 0 8px;
  font-family: var(--display);
  font-size: clamp(30px, 3.3vw, 48px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
}

.prefab-item p {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
}

.prefab-item-large {
  grid-column: 1 / 8;
  grid-row: 1 / 3;
}

.prefab-item-text {
  grid-column: 8 / 13;
  background: var(--water-deep);
}

.prefab-item-text > div {
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background: transparent;
}

.prefab-item-wide {
  grid-column: 8 / 13;
  grid-row: 2;
}

.prefab-item-last {
  grid-column: 1 / 13;
  grid-row: 3;
  min-height: 220px;
  background: var(--white);
  color: var(--ink);
}

.prefab-item-last > div {
  background: transparent;
}

.prefab-item-last span {
  color: var(--signal);
}

.prefab-item-last p {
  color: var(--ink-soft);
}

.detail-breakout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(260px, 0.65fr);
  min-height: 660px;
  margin: clamp(90px, 11vw, 170px) 0 0;
  background: var(--ink);
  color: var(--white);
}

.detail-breakout img {
  height: 100%;
  max-height: 760px;
  object-fit: cover;
}

.detail-breakout figcaption {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(32px, 5vw, 72px);
}

.detail-breakout figcaption > span {
  color: var(--water-bright);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.17em;
  text-transform: uppercase;
}

.detail-breakout figcaption p {
  margin: 60px 0 0;
  font-family: var(--display);
  font-size: clamp(32px, 3.4vw, 55px);
  letter-spacing: -0.04em;
  line-height: 1.06;
}

.projects {
  padding-block: clamp(110px, 13vw, 190px);
}

.projects-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 70px;
}

.project-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.project-filters button {
  min-height: 42px;
  padding: 0 17px;
  border: 1px solid var(--line);
  border-radius: 30px;
  background: transparent;
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  transition: background 180ms ease, color 180ms ease, border-color 180ms ease;
}

.project-filters button:hover,
.project-filters button[aria-pressed="true"] {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--white);
}

.project-composition {
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  grid-template-rows: repeat(2, minmax(330px, 1fr));
  gap: 24px;
}

.project-featured {
  grid-row: 1 / span 2;
}

.project figure {
  position: relative;
  height: 100%;
  min-height: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--water-deep);
}

.project {
  position: relative;
}

.project-trigger {
  position: absolute;
  z-index: 4;
  inset: 0;
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.project-trigger:focus-visible {
  outline-offset: -5px;
}

.project img {
  height: 100%;
  object-fit: cover;
  transition: transform 700ms cubic-bezier(0.2, 0.7, 0.2, 1), filter 500ms ease;
}

.project figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(7, 26, 29, 0.85), rgba(7, 26, 29, 0.02) 64%);
  pointer-events: none;
}

.project:hover img {
  transform: scale(1.035);
  filter: saturate(0.88);
}

.project figcaption {
  position: absolute;
  z-index: 2;
  inset: auto 0 0;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  padding: clamp(24px, 3.5vw, 50px);
  color: var(--white);
}

.project figcaption > p {
  grid-column: 1 / -1;
  display: flex;
  gap: 17px;
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.project figcaption > p span + span::before {
  content: "·";
  margin-right: 17px;
  color: var(--signal);
}

.project h3 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(31px, 3.5vw, 58px);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 0.98;
}

.project-secondary h3,
.project-tertiary h3 {
  font-size: clamp(28px, 2.6vw, 42px);
}

.project-arrow {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.56);
  border-radius: 50%;
  transition: background 180ms ease, color 180ms ease;
}

.project:hover .project-arrow {
  background: var(--white);
  color: var(--ink);
}

.project-dialog {
  width: min(920px, calc(100vw - 40px));
  max-width: none;
  max-height: min(820px, calc(100vh - 40px));
  padding: 0;
  border: 0;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 30px 90px rgba(4, 24, 27, 0.35);
}

.project-dialog::backdrop {
  background: rgba(7, 28, 31, 0.76);
  backdrop-filter: blur(5px);
}

.project-dialog img {
  width: 100%;
  max-height: 54vh;
  object-fit: cover;
}

.dialog-copy {
  padding: clamp(28px, 5vw, 54px);
}

.dialog-copy > p:first-child {
  margin: 0 0 14px;
  color: var(--water-deep);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.dialog-copy h3 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(38px, 5vw, 68px);
  font-weight: 400;
  letter-spacing: -0.04em;
  line-height: 0.98;
}

.dialog-copy > p:last-child {
  max-width: 620px;
  margin: 24px 0 0;
  color: var(--ink-soft);
}

.dialog-close {
  position: absolute;
  z-index: 2;
  top: 16px;
  right: 16px;
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: var(--white);
  color: var(--ink);
  cursor: pointer;
  font-size: 26px;
  line-height: 1;
}

.project-composition:has(.project[hidden]) {
  grid-template-rows: minmax(440px, 66vh);
}

.project-composition:has(.project[hidden]) .project:not([hidden]) {
  grid-row: auto;
}

.project-composition[data-active-filter="carpenteria"] .project:not([hidden]) {
  grid-column: 1 / -1;
}

.method {
  position: relative;
  overflow: hidden;
  padding-block: clamp(110px, 13vw, 190px);
  background: var(--ink);
  color: var(--white);
}

.method::before {
  content: "";
  position: absolute;
  top: -30%;
  left: -6%;
  width: 48vw;
  height: 48vw;
  border: 1px solid rgba(185, 220, 220, 0.2);
  border-radius: 50%;
  box-shadow: 0 0 0 9vw rgba(122, 185, 184, 0.035), 0 0 0 18vw rgba(122, 185, 184, 0.025);
}

.method-layout {
  position: relative;
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: clamp(70px, 10vw, 160px);
}

.method-heading {
  align-self: start;
  position: sticky;
  top: 40px;
}

.method h2 {
  max-width: 540px;
  font-size: clamp(58px, 6.6vw, 102px);
}

.method-heading > p:last-child {
  max-width: 470px;
  margin: 34px 0 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: 17px;
}

.mission-statement {
  align-self: end;
  max-width: 760px;
  margin: 0;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  color: var(--white);
  font-family: var(--display);
  font-size: clamp(33px, 4vw, 60px);
  letter-spacing: -0.04em;
  line-height: 1.12;
}

.method-steps {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: phase;
}

.method-steps li {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 24px;
  min-height: 180px;
  padding: 34px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.method-steps li:last-child {
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
}

.method-steps li > span {
  color: var(--signal);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.13em;
}

.method-steps h3 {
  margin: -6px 0 12px;
  font-family: var(--display);
  font-size: clamp(35px, 3.4vw, 52px);
  font-weight: 400;
  letter-spacing: -0.035em;
  line-height: 1;
}

.method-steps p {
  max-width: 510px;
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
}

.company {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: clamp(30px, 5vw, 84px);
  padding-block: clamp(110px, 13vw, 190px);
}

.company-rail {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: start;
}

.vertical-note {
  margin: 140px 0 0;
  color: var(--ink-soft);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.company h2 {
  max-width: 960px;
  font-size: clamp(54px, 7vw, 108px);
}

.company-lede {
  max-width: 810px;
  margin: 55px 0 0;
  color: var(--water-deep);
  font-family: var(--display);
  font-size: clamp(27px, 3.3vw, 48px);
  letter-spacing: -0.035em;
  line-height: 1.16;
}

.company-columns {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 50px;
  max-width: 810px;
  margin-top: 65px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  color: var(--ink-soft);
}

.certifications {
  padding-block: clamp(100px, 12vw, 170px);
  background: #10282c;
  color: var(--white);
}

.certifications-layout {
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(420px, 1.3fr);
  gap: clamp(60px, 10vw, 150px);
  align-items: start;
}

.certifications h2 {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(54px, 6.4vw, 98px);
  font-weight: 400;
  letter-spacing: -0.055em;
  line-height: 0.92;
}

.certifications ul {
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.3);
  list-style: none;
}

.certifications li {
  display: grid;
  grid-template-columns: 64px 1fr;
  align-items: center;
  min-height: 78px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  font-family: var(--display);
  font-size: clamp(26px, 2.5vw, 38px);
}

.certifications li span {
  color: var(--signal);
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.13em;
}

.company-columns p {
  margin: 0;
}

.contact {
  position: relative;
  overflow: hidden;
  min-height: 720px;
  padding-block: clamp(100px, 12vw, 170px);
  background: var(--water-deep);
  color: var(--white);
}

.contact::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.18;
  background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(90deg, transparent, black);
}

.contact-orbit {
  position: absolute;
  top: 50%;
  right: -12vw;
  width: min(64vw, 850px);
  aspect-ratio: 1;
  transform: translateY(-50%);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%;
}

.contact-orbit::before,
.contact-orbit::after {
  content: "";
  position: absolute;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 50%;
}

.contact-orbit::before {
  inset: 12%;
}

.contact-orbit::after {
  inset: 31%;
  background: rgba(185, 220, 220, 0.08);
}

.contact-orbit span {
  position: absolute;
  z-index: 2;
  top: 20%;
  left: 12%;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--signal);
  box-shadow: 0 0 0 12px rgba(233, 131, 63, 0.15);
}

.contact-inner {
  position: relative;
  z-index: 2;
}

.contact h2 {
  max-width: 900px;
  font-size: clamp(68px, 8.6vw, 136px);
}

.contact-link {
  display: inline-flex;
  align-items: center;
  gap: 30px;
  margin-top: 58px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.7);
  font-size: clamp(18px, 2vw, 28px);
  font-weight: 500;
  transition: gap 180ms ease;
}

.contact-link:hover {
  gap: 44px;
}

.contact-meta {
  display: flex;
  gap: 60px;
  margin-top: 65px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
}

.contact-meta p {
  margin: 0;
}

.contact-meta a {
  border-bottom: 1px solid currentColor;
}

.site-footer {
  display: grid;
  grid-template-columns: 1fr 1fr auto;
  gap: 30px;
  align-items: end;
  padding: 54px 32px;
  background: #10282c;
  color: var(--white);
}

.footer-brand {
  justify-self: start;
}

.site-footer p,
.site-footer > a:last-child {
  margin: 0;
  color: rgba(255, 255, 255, 0.57);
  font-size: 11px;
}

.site-footer > a:last-child {
  border-bottom: 1px solid currentColor;
}

@media (max-width: 1160px) {
  .menu-toggle {
    display: inline-flex;
  }

  .site-navigation {
    position: fixed;
    z-index: 110;
    inset: calc(38px + var(--header-height)) 0 0;
    display: flex;
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    padding: 30px 24px 50px;
    background: var(--paper);
    color: var(--ink);
  }

  .site-navigation > a:not(.nav-cta),
  .nav-group > a {
    padding: 10px 0;
    font-family: var(--display);
    font-size: clamp(27px, 4.2vw, 42px);
    font-weight: 400;
    letter-spacing: -0.03em;
  }

  .site-navigation > a:not(.nav-cta) {
    border-bottom: 1px solid var(--line);
  }

  .nav-group {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0 16px;
    border-bottom: 1px solid var(--line);
  }

  .submenu-toggle {
    width: 32px;
    height: 32px;
    align-self: center;
    border-color: var(--ink);
  }

  .submenu {
    position: static;
    grid-column: 1 / -1;
    width: 100%;
    padding: 0 0 10px 20px;
    background: transparent;
    box-shadow: none;
  }

  .submenu a {
    padding: 9px 0;
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 600;
  }

  .nav-cta {
    min-height: 56px;
    justify-content: space-between;
    margin-top: 22px;
    border-color: var(--ink);
    background: var(--ink);
    color: var(--white);
  }
}

@media (max-width: 1100px) {
  :root {
    --shell: min(100% - 48px, 960px);
  }

  .competence-row {
    grid-template-columns: 60px minmax(280px, 1.15fr) minmax(220px, 0.85fr) 130px;
  }

  .competence-visual {
    width: 130px;
    height: 96px;
  }

  .competence-row > a {
    grid-column: 2;
    justify-self: start;
    margin-top: -35px;
    margin-bottom: 25px;
  }

  .project-composition {
    grid-template-rows: repeat(2, minmax(290px, 1fr));
  }
}

@media (max-width: 860px) {
  :root {
    --shell: calc(100vw - 40px);
    --header-height: 104px;
  }

  .preview-bar {
    align-items: flex-start;
    padding-inline: 14px;
    overflow-x: auto;
    white-space: nowrap;
  }

  .preview-bar nav {
    gap: 16px;
  }

  .site-header {
    top: 38px;
    min-height: var(--header-height);
    padding-inline: 20px;
  }

  .hero {
    min-height: 760px;
  }

  .hero-wash {
    background: linear-gradient(0deg, rgba(8, 34, 38, 0.86) 0%, rgba(8, 34, 38, 0.34) 75%);
  }

  .hero-copy {
    width: calc(100% - 40px);
    padding-top: 250px;
    margin-inline: 20px;
  }

  .hero h1 {
    font-size: clamp(52px, 11vw, 82px);
  }

  .hero-lede {
    max-width: 560px;
    font-size: 17px;
  }

  .video-toggle {
    top: 158px;
    right: 20px;
  }

  .hero-index {
    right: auto;
    left: 20px;
    bottom: 22px;
  }

  .manifesto {
    grid-template-columns: 48px 1fr;
    gap: 20px;
  }

  .manifesto-copy {
    grid-column: 2;
    max-width: 600px;
    padding-top: 10px;
  }

  .competences-intro,
  .company {
    grid-template-columns: 48px 1fr;
    gap: 20px;
  }

  .competence-row {
    grid-template-columns: 48px 1fr;
    gap: 18px 20px;
    padding-block: 30px;
  }

  .competence-row h3,
  .competence-row > p:nth-of-type(2),
  .competence-visual,
  .competence-row > a {
    grid-column: 2;
  }

  .competence-visual {
    width: min(100%, 520px);
    height: 220px;
  }

  .competence-row > a {
    margin: 0;
  }

  .detail-breakout {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .prefab-heading {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .prefab-grid {
    grid-template-columns: 1.25fr 0.75fr;
    grid-template-rows: minmax(440px, 1fr) minmax(300px, auto) auto;
  }

  .prefab-item-large {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .prefab-item-text {
    grid-column: 1;
    grid-row: 2;
  }

  .prefab-item-wide {
    grid-column: 2;
    grid-row: 2;
  }

  .prefab-item-last {
    grid-column: 1 / -1;
    grid-row: 3;
  }

  .detail-breakout img {
    height: 64vw;
    min-height: 420px;
  }

  .detail-breakout figcaption {
    min-height: 320px;
  }

  .projects-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .project-filters {
    justify-content: flex-start;
  }

  .project-composition {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: minmax(520px, 65vh) 360px;
  }

  .project-featured {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .method-layout {
    grid-template-columns: 1fr;
    gap: 80px;
  }

  .method-heading {
    position: static;
  }

  .company-lede,
  .company-columns {
    max-width: 680px;
  }

  .certifications-layout {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .contact {
    min-height: 650px;
  }

  .contact-orbit {
    right: -35vw;
    width: 90vw;
  }

  .site-footer {
    grid-template-columns: 1fr auto;
  }

  .site-footer p {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

@media (max-width: 600px) {
  :root {
    --shell: calc(100vw - 32px);
  }

  .preview-bar p {
    display: none;
  }

  .preview-bar nav {
    width: max-content;
    margin-inline: auto;
  }

  .hero {
    min-height: 720px;
  }

  .hero-copy {
    width: calc(100% - 32px);
    margin-inline: 16px;
  }

  .hero h1 {
    font-size: clamp(46px, 14vw, 64px);
  }

  .hero-actions {
    align-items: flex-start;
    flex-direction: column;
    gap: 18px;
  }

  .hero-index {
    left: 16px;
    gap: 10px;
    letter-spacing: 0.1em;
  }

  .hero-index span + span::before {
    margin-right: 10px;
  }

  .video-toggle {
    right: 16px;
  }

  .manifesto,
  .competences-intro,
  .company {
    grid-template-columns: 1fr;
  }

  .manifesto .section-number,
  .competences-intro .section-number,
  .company-rail {
    display: none;
  }

  .manifesto-copy {
    grid-column: 1;
  }

  .competences-intro {
    margin-bottom: 50px;
  }

  .competence-row {
    grid-template-columns: 1fr;
  }

  .competence-row h3,
  .competence-row > p:nth-of-type(2),
  .competence-visual,
  .competence-row > a {
    grid-column: 1;
  }

  .competence-visual {
    width: 100%;
    height: 64vw;
    max-height: 360px;
  }

  .competence-id {
    margin-bottom: 5px;
  }

  .detail-breakout img {
    height: 78vw;
    min-height: 320px;
  }

  .prefab-grid {
    display: flex;
    flex-direction: column;
  }

  .prefab-item,
  .prefab-item-last {
    min-height: 360px;
  }

  .prefab-item-text,
  .prefab-item-last {
    min-height: 240px;
  }

  .detail-breakout figcaption {
    min-height: 260px;
  }

  .project-composition,
  .project-composition:has(.project[hidden]) {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .project figure {
    min-height: 450px;
  }

  .project-secondary figure,
  .project-tertiary figure {
    min-height: 380px;
  }

  .project h3,
  .project-secondary h3,
  .project-tertiary h3 {
    font-size: 35px;
  }

  .method-steps li {
    grid-template-columns: 44px 1fr;
  }

  .company-columns {
    grid-template-columns: 1fr;
    gap: 22px;
  }

  .contact {
    min-height: 620px;
  }

  .contact h2 {
    font-size: clamp(58px, 18vw, 88px);
  }

  .contact-link {
    gap: 12px;
    font-size: 17px;
  }

  .contact-meta {
    flex-direction: column;
    gap: 18px;
  }

  .contact-orbit {
    top: 62%;
    right: -58vw;
    width: 120vw;
  }

  .site-footer {
    grid-template-columns: 1fr;
    align-items: start;
    padding-inline: 20px;
  }

  .site-footer p,
  .site-footer > a:last-child {
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }

  .hero-media video {
    visibility: hidden;
  }

  .hero-media {
    background: url("media/hero-water-poster.jpg") center / cover no-repeat;
  }
}

@media (forced-colors: active) {
  .hero-wash,
  .project figure::after,
  .contact::before {
    display: none;
  }

  .project figcaption {
    background: Canvas;
    color: CanvasText;
  }
}


/* assets/technical-drawings.css */
/* Decorative technical studies. The parent controls color and dimensions.
   Use on a dark panel, e.g. color: #eaf1e7; background: #173e35.
   Animation is opt-in: .drawing-active on the SVG or any ancestor. */
.cm-tech-svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
  color: inherit;
  pointer-events: none;
}
.cm-tech-svg :is(path, circle, ellipse) { vector-effect: non-scaling-stroke; }
.cm-tech-svg .cm-tech-guides { opacity: .24; stroke-width: 1; }
.cm-tech-svg .cm-tech-ground { opacity: .32; stroke-width: 1; }
.cm-tech-svg .cm-tech-back { opacity: .4; }
.cm-tech-svg .cm-tech-portal-depth { opacity: .65; }
.cm-tech-svg .cm-tech-dashed { stroke-dasharray: 3 7; }
.cm-tech-svg .cm-tech-accent { color: #c2e77e; stroke: #c2e77e; }
.cm-tech-svg .cm-tech-water { opacity: .35; stroke-dasharray: 36 14; }
.cm-tech-svg .cm-tech-detail { stroke-width: 1.2; }
.cm-tech-svg .cm-tech-frame-rear { opacity: .55; }
.cm-tech-svg .cm-tech-crossmembers { opacity: .7; }
.cm-tech-svg .cm-tech-pedestal { stroke-width: 1.5; }

/* Nothing moves until a panel is activated; base drawings remain complete
   when scripts are unavailable or when the user requests reduced motion. */
.drawing-active .cm-tech-module {
  animation: cm-tech-module-in 1.35s cubic-bezier(.16, 1, .3, 1) both;
  animation-delay: var(--module-delay, 0ms);
}
.drawing-active .cm-tech-portal-trace {
  stroke-dasharray: 1050;
  animation: cm-tech-trace-in 1.9s cubic-bezier(.3, 0, .2, 1) both;
}
.drawing-active .cm-tech-arm {
  transform-box: view-box;
  transform-origin: 300px 214px;
  animation: cm-tech-arm-turn 2.5s cubic-bezier(.18, .65, .25, 1) both;
}
.drawing-active .cm-tech-frame-front {
  animation: cm-tech-frame-in 1.6s cubic-bezier(.16, 1, .3, 1) both;
}
.drawing-active .cm-tech-crossmembers {
  animation: cm-tech-members-in 1.4s .25s ease-out both;
}
/* The cupola is already open: reveal its fixed, connected geometry.
   Moving the lid as a 2D layer would detach the hinges and actuators. */
.drawing-active .cm-tech-dome-section {
  animation: cm-tech-dome-reveal 1.8s cubic-bezier(.2, .75, .2, 1) both;
}
@keyframes cm-tech-module-in {
  from { opacity: 0; transform: translate(0, -22px); }
  to { opacity: 1; transform: translate(0, 0); }
}
@keyframes cm-tech-trace-in {
  from { stroke-dashoffset: 1050; opacity: .3; }
  to { stroke-dashoffset: 0; opacity: 1; }
}
@keyframes cm-tech-arm-turn {
  from { transform: rotate(-18deg); }
  to { transform: rotate(0); }
}
@keyframes cm-tech-frame-in {
  from { opacity: .05; transform: translate(-24px, 19px); }
  to { opacity: 1; transform: translate(0, 0); }
}
@keyframes cm-tech-members-in {
  from { opacity: 0; }
  to { opacity: .7; }
}
@keyframes cm-tech-dome-reveal {
  from { opacity: .2; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .cm-tech-svg *,
  .drawing-active .cm-tech-svg * {
    animation: none !important;
    transition: none !important;
  }
  .cm-tech-svg .cm-tech-dome-section { opacity: 1; }
}


/* assets/infrastrutture-revisione.css */
/* Concept B, revisione: materia, struttura e movimento. Base esistente conservata. */
:root{--paper:#f0f0e8;--white:#fbfcf6;--ink:#17352e;--ink-soft:#4a6057;--water-deep:#315b4e;--water-bright:#d4e5be;--signal:#c2e77e;--line:#ccd2c7;--display:'Helvetica Neue',Helvetica,Arial,sans-serif;--header-height:84px;--shell:min(1280px,calc(100% - 80px))}
html{scroll-padding-top:140px}body{overflow-x:clip}body.dialog-open{overflow:hidden}
:focus-visible{outline:3px solid #497323;outline-offset:5px}.hero :focus-visible,.sector-stage :focus-visible,.method :focus-visible,.contact :focus-visible{outline-color:var(--signal)}
.preview-bar{position:fixed;inset:0 0 auto;min-height:32px;height:32px;padding:6px 32px;font-size:9px;letter-spacing:.08em;background:#17352e;color:#e3e9da}
.site-header{position:fixed;top:32px;min-height:84px;padding-inline:32px;background:rgba(251,252,246,.98);color:var(--ink);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-header.is-scrolled{box-shadow:0 5px 30px #17352e0d}.brand{padding:0;background:#fff}.brand-logo{width:148px}.site-navigation{font-size:12px;gap:clamp(10px,1.35vw,22px)}
.submenu-toggle{width:28px;height:28px;border-color:#829184}.nav-cta{border:1px solid var(--ink);background:var(--ink);color:var(--white);min-height:42px;padding-inline:18px}.nav-cta:hover{background:#315b4e;color:white}
.submenu{top:calc(100% + 18px);border:1px solid var(--line);box-shadow:0 16px 35px #17352e20}.submenu a:hover{color:#497323}
.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;transform:scaleX(var(--read-progress,0));transform-origin:left;background:#789b44}
main{padding-top:116px}.hero{min-height:730px;height:calc(100svh - 116px);max-height:900px;background:#17352e}.hero-media{will-change:transform;transform:scale(1.025) translateY(var(--hero-shift,0px))}.hero-media video{object-position:center 45%}
.hero-wash{background:linear-gradient(90deg,#112f2be6 0%,#102e2bd9 33%,#17352e36 80%),linear-gradient(0deg,#102d29b3,transparent 50%)}
.hero-copy{padding-top:clamp(125px,15vh,190px);margin-left:max(40px,calc((100vw - 1280px)/2));width:min(850px,calc(100% - 80px));padding-bottom:180px}
.eyebrow{font-size:10px;letter-spacing:.16em;margin-bottom:22px}.hero .eyebrow{color:#d5e5cd;display:flex;align-items:center;gap:12px}.hero .eyebrow:before{content:'';width:24px;height:1px;background:var(--signal)}
.hero h1{font-size:clamp(58px,6.9vw,105px);font-weight:500;letter-spacing:-.063em;line-height:1.03;max-width:980px}.hero h1 em{font-family:Georgia,serif;font-weight:400;color:#dbedc0;letter-spacing:-.065em}
.hero-lede{font-size:17px;line-height:1.6;margin-top:26px;max-width:600px;color:#e6eae4}.hero-actions{gap:32px;margin-top:30px}.button-light{background:var(--signal);min-height:54px;padding:0 23px}.button-light:hover{background:#e0f5b9}.button span,.text-link span{transition:transform .25s}.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}
.hero-structure{position:absolute;right:-2%;top:20%;width:43%;color:#e0edd6;opacity:.37;pointer-events:none;transform:rotate(-4deg);mask-image:linear-gradient(90deg,transparent,black 38%)}
.hero-structure .cm-tech-svg{stroke-width:.9}.hero-structure .cm-tech-guides{display:none}
.video-toggle{top:28px;right:32px;min-height:38px;border-radius:0;background:#17352e55;backdrop-filter:blur(5px)}.motion-toggle{position:absolute;z-index:3;left:max(40px,calc((100vw - 1280px)/2));top:35px;background:none;border:0;border-bottom:1px solid #ffffff6b;padding:0 0 4px;color:#edf2e8;font-size:10px;cursor:pointer}.motion-toggle span{color:var(--signal)}
.sector-rail{position:absolute;z-index:3;bottom:0;left:0;width:100%;display:grid;grid-template-columns:repeat(5,1fr);background:#17352ee8;backdrop-filter:blur(12px);border-top:1px solid #ffffff36;padding:0 32px}.sector-rail a{display:flex;align-items:center;gap:15px;min-height:86px;padding:14px 20px;border-right:1px solid #ffffff24;font-size:13px;transition:background .25s}.sector-rail a:first-child{border-left:1px solid #ffffff24}.sector-rail a>span{color:var(--signal);font-size:10px}.sector-rail b{margin-left:auto;font-size:18px;font-weight:400}.sector-rail a:hover{background:#c2e77e;color:var(--ink)}.sector-rail a:hover>span{color:var(--ink)}
.manifesto{grid-template-columns:55px 1fr 1.15fr;gap:40px;padding-block:90px}.section-number,.competence-id{color:#4b6e37}.manifesto h2{font-size:clamp(38px,4.7vw,70px);font-weight:500;max-width:500px}.manifesto-copy{padding-top:0;font-size:18px;line-height:1.65}.manifesto-copy p{margin-bottom:12px}.manifesto .eyebrow{margin-bottom:18px}.manifesto-copy .text-link{margin-top:5px}
.competences{padding-top:90px;background:#fbfcf6}.competences-intro{grid-template-columns:55px 1fr;gap:40px;margin-bottom:48px}.competences h2,.projects h2,.company h2{font-size:clamp(44px,5.5vw,78px);font-weight:500;letter-spacing:-.055em;line-height:1.04}
.sector-workbench{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:start;padding-bottom:90px}.sector-list{border-top:1px solid var(--ink)}.sector-item{border-bottom:1px solid var(--line);scroll-margin-top:155px}.sector-item h3{margin:0}.sector-select{display:grid;grid-template-columns:25px 1fr 24px;gap:16px;width:100%;padding:24px 0;text-align:left;border:0;background:none;font-size:clamp(20px,2.15vw,30px);letter-spacing:-.04em;line-height:1.15;cursor:pointer;font-weight:400}.sector-no{font-size:10px;letter-spacing:.05em;color:#526449;padding-top:6px}.sector-plus{font-size:22px;font-weight:300;align-self:start;transition:transform .3s}.sector-select:hover{color:#497323}.sector-select[aria-expanded=true]{color:var(--ink)}.sector-select[aria-expanded=true] .sector-plus{transform:rotate(90deg)}.sector-item.is-active{border-bottom-color:#17352e}.sector-item.is-active .sector-no{color:var(--ink);background:var(--signal);width:25px;height:25px;text-align:center;padding-top:5px}.sector-detail{padding:0 32px 24px 41px}.sector-detail>p{margin:0 0 17px;color:var(--ink-soft);font-size:15px;line-height:1.65}.sector-detail .text-link{font-size:12px;min-height:36px;gap:16px}.sector-detail .sector-visual{height:280px;margin-top:22px}
.sectors-ready .sector-detail .sector-visual{display:none}.sector-stage{position:sticky;top:144px;background:#17352e;color:#e7eddf;min-width:0;border:1px solid #17352e}.stage-toolbar{height:62px;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;font-size:10px;letter-spacing:.13em;border-bottom:1px solid #ffffff24}.view-switch{display:flex;gap:3px;letter-spacing:0}.view-switch button{border:1px solid #ffffff38;background:transparent;color:#e5eddc;font-size:11px;padding:9px 12px;cursor:pointer}.view-switch button[aria-pressed=true]{background:var(--signal);color:var(--ink);border-color:var(--signal)}
.stage-visual{position:relative;height:460px;overflow:hidden;background-image:linear-gradient(#c2e77e09 1px,transparent 1px),linear-gradient(90deg,#c2e77e09 1px,transparent 1px);background-size:28px 28px}.sector-visual{position:relative;overflow:hidden;background:#17352e;color:#e7eddf}.stage-visual .sector-visual{height:100%;background:transparent}.sector-visual img{width:100%;height:100%;object-fit:cover;transition:opacity .55s,transform .7s}.sector-visual .technical-drawing{position:absolute;right:-3%;bottom:0;width:67%;padding:10px;background:#17352eef;transition:width .55s,right .55s,bottom .55s,background .55s;pointer-events:none}.stage-visual .sector-visual>img{animation:photo-enter .7s ease-out backwards}.sector-stage[data-view=drawing] img,.sector-workbench[data-view=drawing] .sector-detail img{opacity:0;transform:scale(1.035)}.sector-stage[data-view=drawing] .technical-drawing{width:100%;right:0;bottom:50%;transform:translateY(50%);background:transparent}.stage-caption{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:20px 22px;font-size:11px;letter-spacing:.05em}.stage-caption>span:last-child{color:#bed0af;font-size:9px;white-space:nowrap}.mobile-view{display:none}
@keyframes photo-enter{from{opacity:.25;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
.prefab-showcase{margin-top:0;padding-block:85px;background:#e4e8dc}.prefab-heading{grid-template-columns:.5fr 1.5fr;margin-bottom:36px}.prefab-heading h3{font-size:clamp(35px,4.1vw,60px);line-height:1.07;font-weight:400}.prefab-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:420px 270px;gap:16px}.prefab-item-large{grid-column:1;grid-row:1}.prefab-item-text{grid-column:2;grid-row:1;background:#315b4e}.prefab-item-wide{grid-column:1;grid-row:2}.prefab-item-last{grid-column:2;grid-row:2;background:var(--white);min-height:0}.prefab-item{min-height:0}.prefab-item h4{font-size:clamp(28px,2.8vw,42px);line-height:1.04}.prefab-item>div:not(.prefab-drawing){padding:28px}.prefab-item p{font-size:14px;color:#e4e9de}.prefab-item-last p{color:var(--ink-soft)}.prefab-item-last span{color:#497323}.prefab-item-last .text-link{font-size:11px;display:inline-flex;margin-right:15px;margin-top:12px;width:fit-content;gap:8px}.prefab-item>.prefab-drawing{position:absolute;inset:-25px 8% auto;padding:0;background:none;opacity:.45;pointer-events:none;transform:rotate(-7deg)}
.detail-breakout{margin-top:0;min-height:400px;grid-template-columns:1fr 1fr;background:#17352e}.detail-breakout>img{height:450px;min-height:0}.detail-breakout figcaption{position:relative;overflow:hidden;min-height:0;padding:45px}.detail-breakout figcaption p{position:relative;z-index:1;margin-top:30px;font-size:clamp(33px,3.8vw,55px);max-width:440px}.breakout-drawing{position:absolute;right:-15%;bottom:-28%;width:90%;color:var(--signal);opacity:.23}
.projects{padding-block:90px}.projects-heading{margin-bottom:18px;align-items:center}.project-filters button{border-radius:0;min-height:42px}.project-filters button[aria-pressed=true]{background:var(--ink)}.filter-status{font-size:11px;color:#536448;margin-block:0 25px}.project-composition{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:480px;gap:16px}.project-featured{grid-row:auto}.project figure{min-height:0}.project figcaption{padding:24px}.project h3,.project-secondary h3,.project-tertiary h3{font-family:var(--display);font-size:clamp(28px,2.7vw,40px);line-height:1.05;letter-spacing:-.045em}.project figcaption>p{font-size:9px;gap:7px}.project figcaption>p span+span:before{margin-right:7px}.project-arrow{width:34px;height:34px;margin-left:6px}.project-composition:has(.project[hidden]){grid-template-rows:460px;grid-template-columns:repeat(2,minmax(0,1fr))}.project-composition[data-active-filter=carpenteria] .project:not([hidden]){grid-column:1/-1}.project-dialog{max-height:calc(100dvh - 36px);scrollbar-gutter:stable}.project-dialog img{max-height:48vh;object-fit:cover}.dialog-copy{padding:30px 36px}.dialog-copy h3{font-size:clamp(34px,4vw,58px);line-height:1.06}.dialog-copy>p:last-child{margin-top:18px}.dialog-close{border:1px solid #d5ddcd}
.method{padding-block:95px;background:#17352e}.method:before{display:none}.method-layout{grid-template-columns:1fr 1.3fr;gap:80px}.method h2{font-size:clamp(50px,5vw,75px);font-weight:400}.method-heading{position:relative;top:auto}.method-heading>p:last-child{font-size:16px;color:#d3ded0}.mission-statement{font-family:Georgia,serif;font-size:clamp(30px,3.6vw,52px);line-height:1.15;letter-spacing:-.035em;padding-top:28px}.method-drawing{position:absolute;width:50%;left:-13%;bottom:-40%;color:#c2e77e;opacity:.12;transform:translateY(var(--drawing-shift,0px));pointer-events:none}
.company{padding-block:90px;grid-template-columns:55px 1fr;gap:40px}.company-copy{display:grid;grid-template-columns:1.2fr 1fr;gap:0 60px}.company-copy>.eyebrow,.company-copy>h2{grid-column:1/-1}.company-lede{font-family:var(--sans);font-size:clamp(23px,2.4vw,34px);line-height:1.4;letter-spacing:-.03em;margin-top:35px;color:var(--ink)}.company-columns{margin-top:40px;padding-top:24px;font-size:17px;line-height:1.7;align-self:start}.vertical-note{margin-top:60px}
.certifications{padding-block:80px;background:#e1e7d9;color:var(--ink)}.certifications .eyebrow.light{color:#426239}.certifications-layout{grid-template-columns:1fr 1.15fr;gap:60px}.certifications h2{font-size:clamp(40px,4.7vw,67px);line-height:1.06;font-weight:400}.certifications ul{border-color:#899c80}.certifications li{min-height:65px;font-family:var(--sans);font-size:clamp(19px,2vw,29px);letter-spacing:-.03em;border-color:#b4c0ac}.certifications li span{color:#456135}
.contact{background:#17352e;min-height:580px;padding-block:90px}.contact:before{opacity:.12}.contact h2{font-size:clamp(57px,7.5vw,104px);line-height:1.04;font-weight:400;max-width:850px}.contact-link{margin-top:35px;font-size:clamp(19px,2.2vw,30px);color:#d9edbf}.contact-meta{margin-top:45px;color:#d2dfc8;gap:45px}.contact-drawing{position:absolute;right:-10%;top:12%;width:57%;color:#c2e77e;opacity:.22;transform:rotate(-7deg);pointer-events:none}.site-footer{padding:32px 40px;border-top:1px solid #ffffff26;background:#17352e}.footer-brand .brand-logo{width:140px}.site-footer p,.site-footer>a:last-child{color:#c5d3ba}
.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-off .hero-media,.motion-off .method-drawing{transform:none}.motion-off .hero-structure{transform:rotate(-4deg)}
@media(min-width:1500px){.sector-stage .stage-visual{height:500px}}
@media(max-width:1160px){.site-navigation{top:116px;bottom:0;padding:20px 30px 35px;background:#fbfcf6}.site-navigation>a:not(.nav-cta),.nav-group>a{font-family:var(--sans);font-size:28px;padding:14px 0}.submenu{border:0}.submenu-toggle{width:44px;height:44px}.nav-cta{margin-top:16px}.menu-toggle{min-height:44px;color:var(--ink)}.sector-workbench{gap:30px}.sector-select{font-size:23px}.stage-visual{height:420px}.sector-rail{padding-inline:20px}.sector-rail a{padding-inline:14px;gap:10px}.project-composition{grid-template-rows:440px}.project figcaption{padding:20px}.project h3,.project-secondary h3,.project-tertiary h3{font-size:30px}.hero-structure{opacity:.24}.prefab-item-last .text-link{font-size:11px}}
@media(max-width:860px){:root{--shell:calc(100% - 40px)}.preview-bar{padding-inline:20px}.site-header{padding-inline:20px}.hero-copy{margin-left:20px;width:calc(100% - 40px);padding-top:140px}.hero{min-height:760px;height:auto}.hero h1{font-size:clamp(58px,8.7vw,75px);max-width:700px}.hero-structure{width:60%;right:-15%;top:30%}.hero-lede{font-size:16px;max-width:540px}.motion-toggle{left:20px}.video-toggle{right:20px}.sector-rail{grid-template-columns:repeat(5,1fr);padding:0}.sector-rail a{flex-wrap:wrap;gap:7px;font-size:11px;padding:15px 12px;min-height:78px}.sector-rail a>span{width:100%;font-size:9px}.sector-rail b{font-size:12px}.manifesto{grid-template-columns:1fr 1.2fr;gap:25px;padding-block:65px}.manifesto .section-number{display:none}.manifesto-copy{grid-column:2;padding:0;font-size:16px}.manifesto h2{font-size:43px}.competences{padding-top:65px}.competences-intro{grid-template-columns:30px 1fr;gap:15px;margin-bottom:35px}.sector-workbench{gap:24px;grid-template-columns:1fr 1fr;padding-bottom:65px}.sector-select{grid-template-columns:20px 1fr 15px;gap:10px;font-size:20px;padding:20px 0}.sector-detail{padding-left:30px;padding-right:8px}.sector-detail>p{font-size:14px}.sector-detail .text-link{font-size:11px}.stage-toolbar{padding:10px 12px;gap:8px}.view-switch button{padding:8px;font-size:10px}.stage-visual{height:380px}.stage-caption{padding:16px 12px}.stage-caption>span:last-child{display:none}.prefab-heading{grid-template-columns:1fr;gap:10px}.prefab-grid{grid-template-rows:350px 310px}.prefab-item>div:not(.prefab-drawing){padding:22px}.prefab-item h4{font-size:30px}.detail-breakout{grid-template-columns:1fr 1fr}.detail-breakout>img{height:350px}.detail-breakout figcaption{padding:30px 24px;min-height:0}.detail-breakout figcaption p{font-size:35px}.projects{padding-block:65px}.projects-heading{flex-direction:row}.project-composition{grid-template-columns:1fr;grid-template-rows:none;gap:20px}.project-featured{grid-column:auto}.project figure{height:380px}.project-composition:has(.project[hidden]){grid-template-columns:1fr;grid-template-rows:none}.project h3,.project-secondary h3,.project-tertiary h3{font-size:36px}.method{padding-block:65px}.method-layout{grid-template-columns:1fr 1fr;gap:40px}.method h2{font-size:54px}.mission-statement{font-size:34px}.company{padding-block:65px;grid-template-columns:30px 1fr;gap:15px}.company-copy{gap:0 30px}.company-lede{font-size:24px}.company-columns{font-size:15px}.certifications{padding-block:65px}.certifications-layout{grid-template-columns:1fr 1.1fr;gap:30px}.certifications h2{font-size:42px}.contact{padding-block:65px;min-height:550px}.contact-drawing{width:90%;right:-40%;top:20%}.contact h2{font-size:68px}.contact-meta{gap:30px}.site-footer{padding-inline:20px}}
@media(max-width:600px){:root{--shell:calc(100% - 36px);--header-height:74px}html{scroll-padding-top:124px}.preview-bar{height:28px;min-height:28px;justify-content:center;padding:0 18px}.preview-bar nav{width:100%;justify-content:space-between;gap:20px;font-size:9px}.preview-long{display:none}.site-header{top:28px;min-height:74px;padding-inline:18px}.brand-logo{width:137px}.site-navigation{top:102px;padding:14px 22px 30px}.site-navigation>a:not(.nav-cta),.nav-group>a{font-size:25px;padding:13px 0}.submenu a{font-size:14px;padding:11px 0}.menu-toggle{font-size:11px}main{padding-top:102px}.hero{min-height:770px;max-height:none;height:auto}.hero-copy{padding-top:116px;padding-bottom:248px;width:calc(100% - 36px);margin-left:18px}.hero .eyebrow{font-size:9px;margin-bottom:23px}.hero h1{font-size:clamp(45px,12.5vw,72px);letter-spacing:-.065em;line-height:1.05}.hero-lede{font-size:15px;line-height:1.6;margin-top:25px}.hero-lede br{display:none}.hero-actions{gap:18px;margin-top:28px;align-items:flex-start}.button{min-height:50px;font-size:12px;gap:25px}.hero-actions .text-link{font-size:12px}.hero-structure{top:35%;right:-40%;width:90%;opacity:.15}.motion-toggle{left:18px;top:27px;font-size:9px}.video-toggle{right:18px;top:18px;font-size:9px;min-height:36px;padding:6px 9px}.video-icon{width:18px;height:18px}.sector-rail{grid-template-columns:repeat(6,1fr);border:0;backdrop-filter:none;background:#17352e}.sector-rail a{grid-column:span 2;min-height:66px;font-size:10px;border-top:1px solid #ffffff30;border-right:1px solid #ffffff30;gap:5px;padding:10px 12px}.sector-rail a:nth-child(4),.sector-rail a:nth-child(5){grid-column:span 3}.sector-rail a:first-child{border-left:0}.sector-rail a>span{font-size:8px}.manifesto{grid-template-columns:1fr;gap:25px;padding-block:52px}.manifesto h2{font-size:43px}.manifesto .eyebrow{margin-bottom:14px}.manifesto-copy{grid-column:1;font-size:16px}.competences{padding-top:52px}.competences-intro{display:block;margin-bottom:28px}.competences-intro .section-number{display:none}.competences h2,.projects h2,.company h2{font-size:43px}.sector-workbench{display:flex;flex-direction:column;gap:0;padding-bottom:52px}.sector-list{width:100%}.sector-stage{display:none!important}.sector-item{scroll-margin-top:122px}.sector-select{font-size:22px;padding:22px 0;grid-template-columns:24px 1fr 20px;gap:12px}.sector-detail{padding:0 0 24px 36px}.sector-detail>p{font-size:15px}.sector-detail .text-link{font-size:12px}.sectors-ready .sector-detail .sector-visual{display:block;margin-left:-36px;height:245px}.sector-visual .technical-drawing{width:65%;right:0}.mobile-view{display:flex;gap:4px;margin:18px 0 0 -36px}.mobile-view button{border:1px solid #17352e55;background:transparent;font-size:11px;padding:10px 14px;cursor:pointer}.mobile-view button[aria-pressed=true]{background:var(--ink);color:white}.sector-workbench[data-view=drawing] .sector-detail .technical-drawing{width:90%;right:5%;bottom:0;background:transparent}.prefab-showcase{padding-block:52px}.prefab-heading h3{font-size:34px}.prefab-grid{display:grid;grid-template-columns:1fr;grid-template-rows:350px 290px 330px auto;gap:14px}.prefab-item-large,.prefab-item-text,.prefab-item-wide,.prefab-item-last{grid-column:1;grid-row:auto;min-height:0}.prefab-item-last{min-height:265px}.prefab-item h4{font-size:33px}.prefab-item>.prefab-drawing{inset:-60px 6% auto;opacity:.32}.detail-breakout{display:block}.detail-breakout>img{height:300px;min-height:0}.detail-breakout figcaption{min-height:275px;padding:30px 24px}.detail-breakout figcaption p{font-size:37px;margin-top:25px}.breakout-drawing{width:65%;bottom:-55%;right:-8%}.projects{padding-block:52px}.projects-heading{flex-direction:column;gap:25px;align-items:flex-start}.project-filters{gap:5px}.project-filters button{padding:0 15px;font-size:11px}.filter-status{margin-top:20px}.project-composition,.project-composition:has(.project[hidden]){display:flex;gap:16px}.project figure,.project-secondary figure,.project-tertiary figure{height:410px;min-height:0}.project h3,.project-secondary h3,.project-tertiary h3{font-size:34px}.project-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.project-dialog img{max-height:38vh;height:240px}.dialog-copy{padding:25px}.dialog-copy h3{font-size:34px}.dialog-copy>p:last-child{font-size:14px}.dialog-close{width:42px;height:42px;top:12px;right:12px}.method{padding-block:55px}.method-layout{grid-template-columns:1fr;gap:40px}.method h2{font-size:50px}.method-heading>p:last-child{margin-top:22px}.mission-statement{font-size:35px}.method-drawing{width:100%;left:-40%;bottom:-5%;opacity:.1}.company{display:block;padding-block:52px}.company-rail{display:none}.company-copy{display:block}.company-lede{font-size:25px;margin-top:28px}.company-columns{font-size:16px;margin-top:25px}.certifications{padding-block:52px}.certifications-layout{grid-template-columns:1fr;gap:30px}.certifications h2{font-size:40px}.certifications li{font-size:25px;min-height:60px}.contact{padding-block:55px;min-height:600px}.contact h2{font-size:clamp(46px,12vw,65px);line-height:1.07}.contact-link{font-size:18px;gap:12px;margin-top:30px}.contact-meta{gap:18px;margin-top:35px}.contact-drawing{width:120%;right:-58%;top:48%;opacity:.15}.site-footer{padding:30px 18px;gap:22px}.footer-brand .brand-logo{width:135px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-media,.method-drawing{transform:none}.sector-visual img{animation:none}.cm-tech-svg *{animation:none!important}}

/* Explicit playback remains visible even with system motion reduction. */
@media(prefers-reduced-motion:reduce){.hero-media video.video-requested{visibility:visible}}

.sector-stage[data-view=drawing] .sector-visual>img{animation:none;opacity:0}
.sector-item{scroll-margin-top:16px}
.sector-select[aria-disabled=true]{cursor:default}

/* Revisione su feedback utente: immagini e disegni convivono senza switch. */
.site-header{background:#fbfcf6}
.site-navigation{font-size:14px;gap:clamp(12px,1.3vw,22px);font-weight:500}
.submenu-toggle{display:flex;align-items:center;justify-content:center;flex:none;line-height:1;padding:0;position:relative}
.submenu-toggle>span:first-child{display:block;line-height:1;font-family:Arial,sans-serif;font-size:20px;transform-origin:center;position:relative;top:-1px}
.submenu-toggle[aria-expanded=true]>span:first-child{transform:rotate(45deg)}
.stage-wordmark{color:#cbd9bf;font-size:10px;letter-spacing:.14em}
.stage-visual:after{content:'';position:absolute;inset:38% 0 0;background:linear-gradient(transparent,#17352ed9);pointer-events:none}
.sector-visual .technical-drawing{z-index:2;width:70%;right:-2%;bottom:-1%;background:none;padding:0;color:#f2f6e9;filter:drop-shadow(0 2px 5px #17352e80);opacity:.88}
.stage-visual .sector-visual{overflow:visible}.stage-visual .technical-drawing{z-index:3}
.sector-detail>p{font-size:16px}.sector-detail .text-link{font-size:14px}
.eyebrow{font-size:12px}.sector-rail a{font-size:15px}.sector-rail a>span{font-size:11px}
.stage-caption{font-size:13px}.stage-toolbar{font-size:12px}.project-filters button{font-size:13px}.filter-status{font-size:13px}
.contact-meta{font-size:15px}.site-footer p,.site-footer>a:last-child{font-size:12px}
@media(max-width:1160px){.site-navigation{font-size:16px}.submenu-toggle>span:first-child{font-size:22px}}
@media(max-width:860px){.sector-rail a{font-size:12px}.sector-detail .text-link{font-size:12px}.sector-detail>p{font-size:15px}.stage-toolbar{font-size:10px}}
@media(max-width:600px){.site-navigation>a:not(.nav-cta),.nav-group>a{font-size:27px}.submenu a{font-size:15px}.sector-rail a{font-size:12px}.sector-rail a>span{font-size:10px}.sector-detail .text-link{font-size:14px}.sector-detail>p{font-size:16px}.sector-detail .sector-visual:after{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#17352ed9);pointer-events:none}.sectors-ready .sector-detail .sector-visual{height:290px}.sector-visual .technical-drawing{width:72%;bottom:-2%;right:-2%}.hero .eyebrow{font-size:10px}}
.submenu a{font-size:14px}
.submenu-toggle>span:first-child{width:12px;height:12px;font-size:0;top:0}
.submenu-toggle>span:first-child:before,.submenu-toggle>span:first-child:after{content:'';position:absolute;background:currentColor}
.submenu-toggle>span:first-child:before{height:1px;width:12px;left:0;top:5.5px}
.submenu-toggle>span:first-child:after{height:12px;width:1px;left:5.5px;top:0}
@media(max-width:600px){.submenu a{font-size:15px}}

/* Menu a tre linee su tutti i dispositivi, su indicazione dell'utente. */
.site-header{padding-inline:40px}
.menu-toggle{display:flex;min-height:52px;min-width:58px;padding:8px;justify-content:center;color:var(--ink)}
.menu-glyph{display:flex;flex-direction:column;justify-content:center;gap:8px;width:42px;height:36px;border:0;border-radius:0;position:relative}
.menu-glyph i{height:2px;width:42px;flex:none;transition:transform .25s,opacity .2s}
.menu-toggle[aria-expanded=true] .menu-glyph i:first-child{transform:translateY(10px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-glyph i:nth-child(2){opacity:0;transform:none}
.menu-toggle[aria-expanded=true] .menu-glyph i:last-child{transform:translateY(-10px) rotate(-45deg)}
.site-navigation{position:fixed;z-index:110;inset:116px 0 0 auto;width:min(650px,100%);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:25px 48px 42px;overflow-y:auto;overscroll-behavior:contain;background:var(--white);color:var(--ink);border-left:1px solid var(--line);box-shadow:-20px 30px 50px #17352e15;animation:menu-enter .3s ease-out}
.site-navigation>a:not(.nav-cta),.nav-group>a{font-family:var(--sans);font-size:clamp(28px,3vw,40px);font-weight:400;letter-spacing:-.045em;line-height:1.2;padding:15px 0;min-height:65px}
.site-navigation>a:not(.nav-cta){border-bottom:1px solid var(--line)}
.site-navigation>a:not(.nav-cta):after,.nav-group>a:after{display:none}
.site-navigation>a:not(.nav-cta):hover,.nav-group>a:hover{color:#497323}
.nav-group{display:grid;grid-template-columns:1fr auto;gap:0 20px;border-bottom:1px solid var(--line)}
.submenu-toggle{width:44px;height:44px;align-self:center;border-color:#7d8f75}
.submenu{position:static;grid-column:1/-1;width:100%;padding:0 0 18px 20px;border:0;box-shadow:none;background:none}
.submenu a{font-size:17px;padding:12px 0;font-weight:400}
.nav-cta{justify-content:space-between;min-height:58px;margin-top:24px;font-size:22px;letter-spacing:-.025em}
.menu-backdrop{position:fixed;z-index:90;inset:116px 0 0;background:#102b2866;backdrop-filter:blur(4px)}
@keyframes menu-enter{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.site-header{padding-inline:18px}.menu-toggle{min-width:50px;min-height:48px;padding:7px}.menu-glyph{width:34px;gap:7px}.menu-glyph i{width:34px}.menu-toggle[aria-expanded=true] .menu-glyph i:first-child{transform:translateY(9px) rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-glyph i:last-child{transform:translateY(-9px) rotate(-45deg)}.site-navigation{inset:102px 0 0;width:100%;padding:18px 24px 35px;border-left:0}.site-navigation>a:not(.nav-cta),.nav-group>a{font-size:28px;padding:13px 0;min-height:60px}.submenu a{font-size:16px}.nav-cta{font-size:20px;min-height:55px;margin-top:20px}.menu-backdrop{top:102px}}

.sector-workbench{scroll-margin-top:16px;overflow-anchor:none}

/* Hero alleggerita: gli accessi ai settori restano nel menu e nell'esploratore. */
.hero-copy{padding-bottom:100px}
@media(max-width:600px){.hero{min-height:690px}.hero-copy{padding-bottom:100px}}

/* Documenti originali: anteprima consultabile e PDF completo. */
.certifications-layout{grid-template-columns:1fr;gap:38px}
.certifications .certificate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border:0}
.certifications .certificate-card{display:flex;flex-direction:column;align-items:stretch;border:1px solid #b4c0ac;background:#f8faf4;min-width:0;padding:0}
.certificate-preview{display:block;position:relative;padding:24px;border:0;background:#d5ddce;cursor:zoom-in;width:100%}
.certificate-preview img{width:100%;height:250px;object-fit:contain;display:block;filter:drop-shadow(0 5px 7px #17352e20)}
.certifications .certificate-enlarge{display:block;margin-top:16px;text-transform:none;font-size:13px;letter-spacing:0;font-weight:500;color:#17352e}
.certificate-preview:hover{background:#c8d7bd}
.certificate-copy{padding:24px}.certificate-copy h3{margin:0;font-size:24px;font-weight:500;letter-spacing:-.03em}.certificate-copy p{font-size:15px;line-height:1.5;letter-spacing:0;margin:9px 0 22px;min-height:45px}.certificate-copy a{display:inline-block;font-size:14px;font-weight:600;letter-spacing:0;text-underline-offset:5px;margin-right:20px}
.certificate-dialog{width:min(850px,calc(100vw - 32px));background:#f4f5ef;padding:0}.certificate-dialog-heading{padding:26px 80px 24px 26px;position:sticky;top:0;background:#f4f5ef;z-index:2}.certificate-dialog-heading h3{font-size:24px;margin:0 0 12px}.certificate-dialog .dialog-close{position:fixed;z-index:3;background:#17352e;color:white}.certificate-dialog>img{width:100%;height:auto;max-height:none;object-fit:contain;padding:0 24px 24px;background:#f4f5ef}.certificate-dialog .dialog-close{position:sticky;top:16px;float:right;margin:16px 16px -64px 0}
@media(max-width:860px){.certifications .certificate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media(max-width:600px){.certifications .certificate-grid{grid-template-columns:1fr;gap:20px}.certificate-preview img{height:280px}.certificate-copy p{min-height:0}.certificate-dialog-heading{padding:22px 64px 20px 18px}.certificate-dialog-heading h3{font-size:21px}.certificate-dialog-heading .text-link{font-size:12px}.certificate-dialog>img{padding:0 8px 12px}.certificate-dialog .dialog-close{margin:12px 12px -54px 0;top:12px}}

/* Foto delle realizzazioni: sequenze con controlli manuali e autoplay gestito da galleries.js. */
.photo-gallery{background:#112d28;color:#f5f7ef;min-width:0}
.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#c2e77e #17352e;outline-offset:-4px}
.gallery-slide{margin:0;flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.project-dialog .gallery-slide img{display:block;width:100%;height:52vh;max-height:540px;object-fit:contain;background:#0e2622}
.gallery-slide figcaption{padding:14px 24px;font-size:14px;line-height:1.5;min-height:50px}
.gallery-controls{display:flex;gap:18px;justify-content:center;align-items:center;padding:12px 20px 18px}
.gallery-controls button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #d0dec055;background:transparent;color:#e8f1df;font-size:24px;cursor:pointer}.gallery-controls button:disabled{opacity:.3;cursor:default}.gallery-controls button:not(:disabled):hover{background:#c2e77e;color:#17352e}
.gallery-status{min-width:65px;text-align:center;font-size:14px;font-variant-numeric:tabular-nums}
.gallery-thumbs{display:flex;gap:8px;padding:0 24px 22px;overflow-x:auto}.gallery-thumbs button{flex:0 0 76px;min-width:0;padding:0;border:2px solid transparent;opacity:.55;background:none;cursor:pointer}.gallery-thumbs button[aria-pressed=true]{border-color:#c2e77e;opacity:1}.photo-gallery .gallery-thumbs img{display:block;width:100%;height:58px;max-height:58px;aspect-ratio:auto;object-fit:cover}.gallery-count{position:absolute;top:20px;left:20px;z-index:2;background:#17352ecc;color:#f4f7ec;padding:9px 12px;font-size:12px;pointer-events:none}
.project-composition,.project-composition:has(.project[hidden]){grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:460px}.project-composition .project{grid-column:auto;grid-row:auto}.project-composition[data-active-filter=carpenteria] .project:not([hidden]){grid-column:auto}.project figure{height:100%}
@media(max-width:600px){.project-composition,.project-composition:has(.project[hidden]){display:grid;grid-template-columns:1fr;grid-auto-rows:410px}.project-dialog .gallery-slide img{height:32vh;max-height:300px}.gallery-slide figcaption{padding:12px 18px;font-size:13px}.gallery-controls{padding-block:5px 12px}.gallery-thumbs{padding:0 16px 16px;gap:5px}.photo-gallery .gallery-thumbs img{height:44px;max-height:44px}.gallery-thumbs button{flex-basis:58px;min-width:0}}


/* assets/site-pages.css */
/* Pagine complete: stessa identità del Concept B, contenuti originali. */
.site-navigation a[aria-current=page]{color:#527c30}.portfolio-more{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:28px}.portfolio-more .text-link{font-size:15px}.inner-page .page-hero{background:#e1e7d9;display:grid;grid-template-columns:1fr;position:relative}.page-hero.with-image{grid-template-columns:1.05fr 1fr;min-height:540px}.page-hero-copy{padding:60px max(40px,calc((100vw - 1280px)/2)) 75px}.with-image .page-hero-copy{padding-right:45px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;line-height:1.5;margin-bottom:48px;color:#516749}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}.page-hero h1{font-family:var(--sans);font-size:clamp(44px,5.2vw,76px);line-height:1.05;letter-spacing:-.055em;font-weight:400;margin:0;max-width:1000px;overflow-wrap:break-word}.page-lead{font-size:20px;line-height:1.6;margin:28px 0 0;max-width:800px;color:#3c584b}.page-hero-image{min-width:0;position:relative}.page-hero-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.content-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px 65px;padding-block:70px;border-bottom:1px solid var(--line)}.content-heading{display:flex;align-items:flex-start;gap:22px}.content-heading .section-number{padding-top:7px}.content-heading h2{font-family:var(--sans);font-weight:400;font-size:clamp(29px,3vw,43px);line-height:1.15;letter-spacing:-.035em;margin:0}.content-body{font-size:18px;line-height:1.75}.content-body p{margin:0 0 22px}.content-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.content-links:empty{display:none}.content-links .text-link{font-size:16px}.content-section>.photo-gallery,.content-section>.page-photo{grid-column:1/-1;margin:8px 0 0;width:100%}.page-photo img{display:block;width:100%;max-height:660px;object-fit:contain;background:#e1e7d9}.inner-page .gallery-slide img{width:100%;height:550px;object-fit:contain;background:#112d28}.inner-page .project-dialog .gallery-slide img{height:48vh;max-height:500px}.inner-page .project-dialog .gallery-thumbs img{height:58px;object-fit:cover}.inner-page .project-dialog .page-photo img{max-height:48vh;object-fit:contain}.inner-page .project-composition,.inner-page .project-composition:has(.project[hidden]){grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:400px}.inner-page .project h3{font-size:29px}.inner-page .project figcaption{padding:22px}.inner-page .project-filters{flex-wrap:wrap}.inner-page .projects-heading{align-items:flex-end;gap:25px;flex-wrap:wrap}.inner-page .projects-heading h2{font-size:42px}.page-next{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:65px}.page-next h2{font-size:clamp(32px,3.5vw,50px);font-weight:400;letter-spacing:-.04em;margin:0}.page-next .button,.brochure-link .button{background:#17352e;color:#f7faef}.page-next .button:hover,.brochure-link .button:hover{background:#315b4e}.sector-page-links{display:flex;justify-content:space-between;gap:25px;flex-wrap:wrap;padding-block:35px}.brochure-link{padding-bottom:45px}.footer-links{display:flex;gap:24px;flex-wrap:wrap;font-size:14px;color:#e2ebd9}.project figure>.gallery-count{display:block;position:absolute;top:18px;left:18px;bottom:auto;right:auto}
@media(max-width:1000px){.inner-page .project-composition,.inner-page .project-composition:has(.project[hidden]){grid-template-columns:repeat(2,minmax(0,1fr))}.page-hero.with-image{grid-template-columns:1fr 1fr}.page-hero-copy{padding:45px 30px 55px}.content-section{gap:30px}.page-lead{font-size:18px}}
@media(max-width:600px){.page-hero.with-image{display:flex;flex-direction:column;min-height:0}.page-hero-copy,.with-image .page-hero-copy{padding:30px 18px 40px}.breadcrumbs{font-size:12px;margin-bottom:30px}.page-hero h1{font-size:43px}.page-lead{font-size:17px;margin-top:24px}.page-hero-image{height:280px}.page-hero-image img{position:static}.content-section{grid-template-columns:1fr;gap:25px;padding-block:42px}.content-heading{gap:15px}.content-heading h2{font-size:31px}.content-body{font-size:17px}.content-section>.photo-gallery{grid-column:1;margin-top:0}.inner-page .gallery-slide img{height:300px}.inner-page .project-dialog .gallery-slide img{height:30vh;max-height:280px}.inner-page .project-dialog .gallery-thumbs img{height:44px}.inner-page .project-composition,.inner-page .project-composition:has(.project[hidden]){grid-template-columns:1fr;grid-auto-rows:400px}.page-next{flex-direction:column;align-items:flex-start;padding-block:45px}.sector-page-links{flex-direction:column;font-size:14px}.footer-links{gap:18px}.portfolio-more{gap:16px}.portfolio-more .text-link{font-size:13px}.inner-page .projects-heading h2{font-size:36px}}
.page-video{grid-column:1/-1;width:100%;max-height:650px;background:#112d28}.content-section .photo-gallery:empty{display:none}



.rfx-feature{padding-block:65px 15px}.rfx-heading{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:28px}.rfx-heading h3{margin:0;font-family:var(--sans);font-size:clamp(32px,3.8vw,52px);line-height:1.1;font-weight:400;letter-spacing:-.04em}.rfx-heading p:not(.eyebrow){font-size:18px;line-height:1.6;margin:0 0 18px}.rfx-heading .text-link{font-size:15px}.rfx-feature .gallery-slide img{display:block;width:100%;height:500px;object-fit:contain;background:#112d28}
@media(max-width:600px){.rfx-feature{padding-block:45px 0}.rfx-heading{grid-template-columns:1fr;gap:22px}.rfx-heading p:not(.eyebrow){font-size:16px}.rfx-feature .gallery-slide img{height:300px}}

/* Le foto restano intere; i margini si fondono con toni ricavati dallo scatto. */
.photo-gallery{background:#e9ece4;color:#17352e}
.gallery-slide{position:relative;isolation:isolate;overflow:hidden}
.gallery-slide:before,.page-photo:before{content:'';position:absolute;z-index:-1;inset:-35px;background-image:var(--photo-background);background-position:center;background-size:cover;filter:blur(30px);opacity:.24;transform:scale(1.05);pointer-events:none}
.gallery-slide figcaption{position:relative;background:#e9ece4;color:#17352e}
.gallery-slide img,.inner-page .gallery-slide img,.project-dialog .gallery-slide img,.rfx-feature .gallery-slide img{background:transparent}
.gallery-controls button{border-color:#80937b;color:#17352e}.gallery-controls button:not(:disabled):hover{background:#d1dfbf;color:#17352e}.gallery-thumbs button[aria-pressed=true]{border-color:#537443}
.page-photo{position:relative;isolation:isolate;overflow:hidden;background:#edf0e8}.page-photo img{position:relative;background:transparent}
.page-video{height:auto;aspect-ratio:16/9;max-height:none;background:#101713;border:0}
.sector-stage{border:0;background:transparent;color:var(--ink)}.stage-toolbar{border-bottom:1px solid var(--line)}.stage-wordmark{color:#52674b}.stage-caption>span:last-child{color:#64765d}.stage-visual{background:none}.stage-visual:after{background:linear-gradient(transparent,#17352e80)}
.media-group-heading{grid-column:1/-1;margin-top:18px}.media-group-heading h3{font-size:clamp(26px,3vw,38px);font-weight:400;letter-spacing:-.035em;margin:0}.media-group-heading .eyebrow{margin-bottom:12px}

.page-hero-image{isolation:isolate;overflow:hidden}.page-hero-residential .page-hero-image:before{content:"";position:absolute;inset:-35px;z-index:-1;background-image:var(--photo-background);background-size:cover;background-position:center;filter:blur(28px);opacity:.3}.page-hero-residential .page-hero-image img{object-fit:contain}.page-photo img{height:auto;max-height:720px}

/* Movyon: il braccio resta intero anche nella hero a due colonne. */
.page-hero-autostrade .page-hero-image{background:#101513}.page-hero-autostrade .page-hero-image:before{content:"";position:absolute;inset:-25px;z-index:-1;background-image:var(--photo-background);background-size:cover;background-position:center;filter:blur(24px);opacity:.45}.page-hero-autostrade .page-hero-image img{object-fit:contain}


/* assets/composition.css */
/* Continuità fra quote, struttura e fotografia. Nessuna geometria nella hero. */
.gallery-controls{position:relative;flex-wrap:wrap;gap:14px}
.gallery-controls .gallery-autoplay{width:auto;min-width:90px;padding:0 12px;font-size:12px;letter-spacing:.03em;border-color:transparent}
.gallery-controls:before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:#17352e14}
.gallery-controls:after{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:#527b46;transform:scaleX(0);transform-origin:left}
.gallery-running .gallery-controls:after{animation:gallery-time 6.5s linear forwards}
@keyframes gallery-time{to{transform:scaleX(1)}}
.composed-section{position:relative;--construction-progress:0}
.composition-line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;color:#638451}
.composition-line path{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--construction-progress));opacity:.58}
.composed-section>.photo-gallery,.composed-section>.page-photo{margin-top:25px}
.content-heading{position:relative;flex-wrap:wrap;align-content:start}.content-heading h2{flex:1;min-width:0}
.content-sketch{flex-basis:100%;max-width:260px;margin:28px 0 0 32px;color:#476551;opacity:.55}
.content-sketch .cm-tech-accent{stroke:#527b46;color:#527b46}
.composed-section .content-heading .section-number{transition:color .7s;color:#526d40}
.composition-arrived .content-heading .section-number{color:#214b3b}
/* The diagram rests on a gradual shadow, with no hard green panel around a photograph. */
.sector-visual .technical-drawing{background:radial-gradient(ellipse at 60% 70%,#17352e90,transparent 69%);width:61%;right:-1%;bottom:0;opacity:.9}
.stage-visual .sector-visual>img{animation:photo-enter .9s cubic-bezier(.16,1,.3,1) backwards}
.project img{transition:transform 1.1s cubic-bezier(.16,1,.3,1),filter .7s}.project:hover img{transform:scale(1.035)}
.project-arrow{transition:transform .4s}.project:hover .project-arrow{transform:translate(3px,-3px)}
.text-link{transition:color .25s}.text-link:hover{color:#496e39}
.text-link.light-link:hover{color:var(--signal)}
@media(max-width:600px){.content-sketch{max-width:160px;margin:14px 0 0 25px}.composition-line{opacity:.7}.gallery-controls{gap:10px}.gallery-controls .gallery-autoplay{min-width:86px}.sector-visual .technical-drawing{width:68%}}
@media(prefers-reduced-motion:reduce){.composition-line path{stroke-dashoffset:0}.gallery-running .gallery-controls:after{animation:none}.project img,.project-arrow{transition:none}}
.motion-off .composition-line path{stroke-dashoffset:0}
.prefab-item-commercial{grid-column:2;grid-row:1}.prefab-item-commercial img{width:100%;height:100%;object-fit:cover}.prefab-item-commercial:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 25%,#102820cc);pointer-events:none}.prefab-item-commercial>div{z-index:2}.prefab-item-commercial>div:not(.prefab-drawing){position:absolute;bottom:0;left:0;right:0}.prefab-item-commercial h4,.prefab-item-commercial span{color:#f6f8ee}
@media(max-width:600px){.prefab-item-commercial{grid-column:1;grid-row:auto}}
.gallery-slide:before,.page-photo:before{background-image:none}.gallery-slide[data-photo-ready]:before,.page-photo[data-photo-ready]:before{background-image:var(--photo-background)}
.prefab-item:not(.prefab-item-last):focus-within{outline:3px solid #527b46;outline-offset:4px}.prefab-item>img{transition:transform 1.1s cubic-bezier(.16,1,.3,1)}.prefab-item:not(.prefab-item-last):hover>img{transform:scale(1.035)}
.content-body ul{padding-left:1.15em;margin:0 0 22px}.content-body li{padding-left:.15em;margin-bottom:4px}

/* Fotografie senza pannelli colorati né duplicati sfocati. */
.photo-gallery,.page-photo,.gallery-slide,.gallery-slide figcaption{background:transparent}
.gallery-slide:before,.page-photo:before,.page-hero-residential .page-hero-image:before,.page-hero-autostrade .page-hero-image:before{content:none!important}
.inner-page .page-hero.with-image{background:var(--paper)}
.page-hero-autostrade .page-hero-image,.page-hero-residential .page-hero-image{background:transparent;align-self:center}
.page-hero-autostrade .page-hero-image img,.page-hero-residential .page-hero-image img{position:static;display:block;height:auto;width:100%}
.gallery-slide img,.inner-page .gallery-slide img,.project-dialog .gallery-slide img,.rfx-feature .gallery-slide img{background:transparent}
.page-photo img{width:auto;max-width:100%;margin-inline:auto}
@media(max-width:600px){.page-hero-autostrade .page-hero-image,.page-hero-residential .page-hero-image{height:auto;width:100%}}

/* Vetroresina: il disegno dei prodotti precede il repertorio fotografico. */
.inner-page-vetroresina .page-hero{align-items:center}
.product-hero-drawing{margin:0;padding:30px 6% 40px 0;color:#375e49;min-width:0}
.product-hero-drawing .cm-tech-svg{width:100%;max-width:850px;margin-inline:auto}
.product-hero-drawing .cm-tech-accent{stroke:#739947;color:#739947}
.product-hero-drawing figcaption{font-size:15px;letter-spacing:.025em;text-align:center;margin-top:25px;color:#4c654e}
.product-hero-drawing figcaption span{padding-inline:14px}
.inner-page-vetroresina .content-sketch{display:none}
.inner-page-vetroresina .content-section>.photo-gallery,.inner-page-vetroresina .content-section>.page-photo{max-width:1050px;justify-self:center}
.inner-page-vetroresina .gallery-slide img{height:390px}
@media(max-width:600px){.product-hero-drawing{width:100%;padding:0 12px 30px;margin:0}.product-hero-drawing figcaption{font-size:13px;margin-top:12px}.inner-page-vetroresina .gallery-slide img{height:280px}}

/* Lettura a due livelli: introduzione, approfondimenti e foto affiancate. */
.reading-intro>p:first-child{font-size:1.08em;line-height:1.65}
.reading-detail{border-top:1px solid var(--line)}
.reading-detail:last-child{border-bottom:1px solid var(--line)}
.reading-detail summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;list-style:none;padding:18px 0;font-size:16px;font-weight:500;line-height:1.45}
.reading-detail summary::-webkit-details-marker{display:none}
.reading-detail summary>span{font-size:24px;font-weight:300;flex:none;transition:transform .25s}
.reading-detail[open] summary>span{transform:rotate(45deg)}
.reading-detail-copy{padding:0 0 8px;font-size:16px;line-height:1.75}
.reading-detail-copy p{margin-bottom:18px}.reading-detail-copy ul{padding-left:20px}
.reading-facts{margin-top:25px;font-size:16px}.reading-facts ul{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0}.reading-facts li{border-top:2px solid #7d9858;padding:12px 18px 12px 0;flex:1;min-width:150px}
@media(min-width:1001px){
 .content-section.editorial-section{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);grid-template-rows:auto 1fr;gap:22px 60px;align-items:start;padding-block:70px}
 .editorial-section>.content-heading{grid-column:1;grid-row:1}.editorial-section>.content-body{grid-column:1;grid-row:2;font-size:17px}
 .content-section.editorial-section>.photo-gallery,.content-section.editorial-section>.page-photo{grid-column:2;grid-row:1/3;margin:0;min-width:0;align-self:start}
 .editorial-section>.photo-gallery .gallery-slide img{height:420px}.editorial-section>.page-photo img{max-height:460px}
 .editorial-section.editorial-reverse{grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr)}
 .editorial-reverse>.content-heading,.editorial-reverse>.content-body{grid-column:2}
 .content-section.editorial-reverse>.photo-gallery,.content-section.editorial-reverse>.page-photo{grid-column:1}
 .editorial-section .content-sketch,.editorial-section>.composition-line{display:none}
 .editorial-section .content-heading h2{font-size:clamp(28px,2.4vw,37px)}
}
@media(prefers-reduced-motion:reduce){.reading-detail summary>span{transition:none}}
.motion-off .reading-detail summary>span{transition:none}
@media print{.reading-detail>div{display:block!important}}


/* assets/company.css */
/* Azienda: i cinque ambiti geometrici sono il primo piano della pagina. */
.inner-page .page-hero-company{width:var(--shell);margin-inline:auto;padding:38px 0 24px;min-height:0;background:var(--paper)}
.page-hero-company .page-hero-copy{display:grid;grid-template-columns:1.1fr 1fr;column-gap:70px;padding:0;align-items:end;max-width:none}
.page-hero-company .breadcrumbs{grid-column:1/-1;margin-bottom:25px}
.page-hero-company .eyebrow{grid-column:1;margin:0 0 14px}
.page-hero-company h1{grid-column:1;font-size:clamp(42px,4.5vw,68px);line-height:1.04;margin:0;max-width:720px}
.page-hero-company .page-lead{grid-column:2;grid-row:2/4;margin:0;font-size:clamp(17px,1.4vw,21px);line-height:1.65;max-width:620px}
.page-hero-company + .company-fields{padding-block:30px 70px}
.page-hero-company + .company-fields .company-fields-heading{margin-bottom:26px;gap:70px}
.page-hero-company + .company-fields h2{font-size:clamp(28px,2.7vw,42px)}
.page-hero-company + .company-fields .company-fields-heading .eyebrow{margin-bottom:12px}
.page-hero-company + .company-fields .company-fields-heading>p{font-size:16px;line-height:1.6}
.company-origin{display:grid;grid-template-columns:1fr 1fr;gap:75px;padding-block:80px 95px;border-top:1px solid var(--line)}.company-origin h2,.company-fields h2,.company-outlook h2{font-size:clamp(36px,4.2vw,58px);line-height:1.08;font-weight:400;letter-spacing:-.04em;margin:0}.company-origin-copy{font-size:19px;line-height:1.8}.company-origin-copy p{margin:0 0 24px}.company-origins{display:grid;grid-template-columns:1fr 26px 1fr;gap:20px;align-items:center;margin-top:45px;position:relative}.company-origins>div{border-top:1px solid #738e63;padding-top:18px}.company-origins strong{display:block;font-size:22px;font-weight:500}.company-origins span:not(.origin-join){display:block;font-size:14px;line-height:1.5;margin-top:10px}.origin-join{font-size:27px;font-weight:300;color:#60814f}
.company-mission{position:relative;overflow:hidden;background:#17352e;color:#f2f4e9;padding-block:85px}.company-mission>.section-shell{position:relative}.company-mission .eyebrow{color:#c1df94}.company-mission h2{position:relative;z-index:1;max-width:1080px;font-size:clamp(30px,3.5vw,48px);line-height:1.3;letter-spacing:-.025em;font-weight:400;margin:0}.company-mission-drawing{position:absolute;width:550px;right:-90px;bottom:-190px;opacity:.13;pointer-events:none}
.company-fields{padding-block:95px}.company-fields-heading{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:end;margin-bottom:45px}.company-fields-heading>p{font-size:18px;line-height:1.7;margin:0}.company-sector-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:23px}.company-sector{display:block;min-width:0;border-top:1px solid #849477;padding-top:15px}.company-sector-code{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.06em;color:#526c45}.company-sector-code>span{font-size:25px;line-height:.7;transition:transform .35s}.company-sector-sketch{padding-block:20px;color:#46694f;opacity:1;transition:transform .5s cubic-bezier(.16,1,.3,1)}.company-sector:is(:hover,:focus-visible) .company-sector-sketch{transform:translateY(-6px)}.company-sector-sketch .cm-tech-accent{stroke:#5a7b41;color:#5a7b41}.company-sector h3{font-size:23px;line-height:1.15;letter-spacing:-.025em;font-weight:500;margin:0 0 17px}.company-sector p{font-size:14px;line-height:1.65;margin:0;color:#4c6152}.company-sector:hover .company-sector-code>span{transform:translate(3px,-3px)}.company-sector:hover h3{color:#527b37}
.company-outlook{padding-top:75px;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-block:0 80px}.company-outlook .eyebrow{line-height:1.6}.company-outlook p:not(.eyebrow){font-size:18px;line-height:1.75;margin:26px 0}.company-outlook-links{display:flex;gap:20px;flex-wrap:wrap}.company-outlook-links .text-link{font-size:14px}.company-outlook figure{margin:0;min-width:0}.company-outlook img{display:block;width:100%;height:auto}.company-outlook figcaption{font-size:12px;color:#58704c;margin-top:12px;line-height:1.5}
@media(max-width:1000px){.page-hero-company .page-hero-copy{column-gap:30px}.company-origin,.company-fields-heading,.company-outlook{gap:35px}.company-sector-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:35px}.company-sector-sketch{max-width:200px}}
@media(max-width:600px){.page-hero-company{padding-block:25px 10px}.page-hero-company .page-hero-copy{display:block}.page-hero-company .breadcrumbs{margin-bottom:25px}.page-hero-company h1{font-size:42px}.page-hero-company .page-lead{margin-top:24px}.page-hero-company + .company-fields{padding-block:24px 40px}.page-hero-company + .company-fields .company-fields-heading{margin-bottom:25px}.company-origin{display:block;padding-block:45px}.company-origins{margin-top:30px;gap:12px}.company-origins strong{font-size:20px}.company-origin-copy{font-size:17px;margin-top:30px}.company-mission{padding-block:50px}.company-mission-drawing{width:350px;right:-100px;bottom:-120px}.company-fields{padding-block:50px}.company-fields-heading{display:block;margin-bottom:30px}.company-fields-heading>p{margin-top:25px;font-size:17px}.company-sector-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}.company-sector h3{font-size:22px}.company-sector p{font-size:14px}.company-outlook{display:flex;flex-direction:column;gap:30px;padding-bottom:45px}.company-outlook p:not(.eyebrow){font-size:17px}.company-outlook figure{width:100%}}
@media(prefers-reduced-motion:reduce){.company-sector-code>span,.company-sector-sketch{transition:none}}

.motion-off .company-sector-sketch{transition:none}
.company-sector:focus-visible{outline:2px solid #527b37;outline-offset:7px}
@media(min-width:1001px){.inner-page .page-hero-company,.page-hero-company + .company-fields{width:calc(100% - 100px);max-width:1600px}.company-sector-sketch{padding-block:14px}.page-hero-company + .company-fields .company-sector p{font-size:15px}}


/* assets/home-solutions.css */
/* Un accesso paritario ai cinque ambiti: nessuna realizzazione in evidenza. */
.home-solutions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px 28px;padding-block:30px 85px;border-top:1px solid var(--line)}
.solution-intro{padding:25px 25px 25px 0;align-self:center}
.solution-intro h2{font-size:clamp(34px,3vw,46px);font-weight:400;line-height:1.08;letter-spacing:-.04em;margin:20px 0}
.solution-intro>p:not(.eyebrow){font-size:17px;line-height:1.65;max-width:340px;margin:0 0 25px}.solution-intro .text-link{font-size:15px}
.solution-card{display:flex;flex-direction:column;position:relative;min-width:0;border-bottom:1px solid var(--line)}
.solution-media{height:205px;position:relative;overflow:hidden}
.solution-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.16,1,.3,1)}
.solution-number{position:absolute;left:14px;top:14px;background:var(--paper);color:var(--ink);font-size:12px;padding:8px 10px}
.solution-drawing{width:100%;height:100%;color:#375e49;display:flex;align-items:center;justify-content:center}
.solution-drawing .cm-tech-svg{height:100%;width:auto;max-width:100%}.solution-drawing .cm-tech-accent{stroke:#76974c;color:#76974c}
.solution-copy{padding:20px 0 15px;display:flex;flex:1;flex-direction:column}
.solution-copy h3{font-size:26px;line-height:1.15;font-weight:500;letter-spacing:-.03em;margin:0 0 12px}
.solution-copy p{font-size:15px;line-height:1.55;margin:0 0 18px;color:#4b6254}
.solution-route{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:500}.solution-route>span{font-size:25px;transition:transform .3s}
.solution-card:after{content:'';position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:#668d43;transform:scaleX(0);transform-origin:left;transition:transform .4s}
.solution-card:is(:hover,:focus-visible) img{transform:scale(1.045)}.solution-card:is(:hover,:focus-visible):after{transform:scaleX(1)}.solution-card:is(:hover,:focus-visible) .solution-route>span{transform:translate(4px,-4px)}
.solution-card:focus-visible{outline:2px solid #527b37;outline-offset:7px}
@media(max-width:1000px){.home-solutions{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 24px}.solution-media{height:210px}}
@media(max-width:600px){.home-solutions{grid-template-columns:1fr;padding-block:20px 45px;gap:30px}.solution-intro{padding:10px 0 0}.solution-intro h2{font-size:37px}.solution-media{height:210px}.solution-copy h3{font-size:27px}}
@media(prefers-reduced-motion:reduce){.solution-media img,.solution-route>span,.solution-card:after{transition:none}}
.motion-off .solution-media img,.motion-off .solution-route>span,.motion-off .solution-card:after{transition:none}
/* Il formato fotografico evita di tagliare coperture e basamenti dei moduli. */
.solution-media{height:auto;aspect-ratio:3/2}


/* assets/fonts.css */
/* Inter Variable: served locally for consistent type across computers. */
@font-face {
  font-family: 'CM Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("assets/fonts/inter-latin-ext-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: 'CM Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("assets/fonts/inter-latin-wght-normal.woff2") format('woff2-variations');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
:root{--sans:"CM Inter",Arial,sans-serif;--display:var(--sans)}
body{font-family:var(--sans)}


/* assets/design-polish.css */
/* CM — rifinitura editoriale condivisa.
   Ultimo foglio della cascata: nessun contenuto, fotografia o logo sostituito.
   Le animazioni di ingresso sono gestite separatamente da motion-design.js. */
:root {
  --type-display: clamp(2.65rem, 4.6vw, 4.5rem);
  --type-section: clamp(2rem, 3.25vw, 3.35rem);
  --type-card: clamp(1.5rem, 2.05vw, 2rem);
  --space-section: clamp(3.5rem, 6.5vw, 6.5rem);
  --type-label: .75rem;
}

/* Larghezze minime esplicite: i titoli si dispongono nel layout, senza tagli. */
.page-hero-copy, .page-hero-image, .content-heading, .content-body,
.company-origin > *, .company-fields-heading > *, .company-outlook > *,
.projects-heading > *, .dialog-copy, .certificate-copy { min-width: 0; }
h1, h2, h3 { text-wrap: balance; }
.page-lead, .content-body p, .company-origin-copy p,
.solution-copy p, .company-sector p { text-wrap: pretty; }
.eyebrow { font-size: var(--type-label); letter-spacing: .15em; line-height: 1.5; }
.section-number, .sector-no, .solution-number, .company-sector-code,
.gallery-status { font-variant-numeric: tabular-nums; }
.text-link { line-height: 1.45; }

/* Aperture interne: stesso margine della pagina, foto intere e tipografia misurata. */
.inner-page .page-hero {
  width: var(--shell);
  margin-inline: auto;
  background: transparent;
  border-bottom: 1px solid var(--line);
}
.inner-page .page-hero.with-image {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 76px);
  align-items: center;
  min-height: 0;
  padding-block: 48px 56px;
}
.page-hero-copy, .with-image .page-hero-copy { padding: 48px 0 56px; }
.with-image .page-hero-copy { padding: 0; }
.page-hero h1 {
  font-size: var(--type-display);
  line-height: 1.06;
  letter-spacing: -.048em;
  max-width: 24ch;
}
.with-image h1 { font-size: clamp(2.6rem, 4.15vw, 4rem); }
.page-hero .eyebrow { margin-bottom: 18px; }
.breadcrumbs { font-size: .8125rem; margin-bottom: 34px; line-height: 1.6; }
.breadcrumbs > span:last-child { min-width: 0; }
.page-lead {
  font-size: clamp(1.125rem, 1.35vw, 1.25rem);
  line-height: 1.65;
  max-width: 61ch;
  margin-top: 26px;
}
.page-hero-image { align-self: center; }
.page-hero-image img {
  position: static;
  width: 100%;
  height: auto;
  max-height: 610px;
  object-fit: contain;
}
.product-hero-drawing { padding: 0; }
.product-hero-drawing figcaption { line-height: 1.6; }

/* Un numero piccolo, un titolo leggibile, una colonna di testo con misura costante. */
.content-section { padding-block: var(--space-section); gap: 30px 64px; }
.content-heading {
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  column-gap: 18px;
  align-items: start;
}
.content-heading .section-number {
  flex: 0 0 24px;
  margin: 0;
  padding-top: .65em;
  font-size: .75rem;
  line-height: 1.5;
}
.content-heading h2 {
  grid-column: 2;
  grid-row: 1;
  font-size: var(--type-section);
  line-height: 1.13;
  letter-spacing: -.04em;
}
.content-body { font-size: 1.125rem; line-height: 1.75; }
.content-body p { max-width: 65ch; }
.content-body p:last-child { margin-bottom: 0; }
.section-description { grid-column: 2; font-size: 1rem; line-height: 1.65; color: var(--ink-soft); max-width: 44ch; }
.section-description p { margin: 4px 0 18px; }
.section-client { padding-top: 14px; border-top: 1px solid var(--line); }
.section-client span { display: block; font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 5px; }
.content-links { padding-top: 3px; }
.content-links .text-link { font-size: 1rem; min-height: 44px; }
.content-sketch {
  grid-column: 2;
  grid-row: 2;
  width: min(260px, 100%);
  max-width: 100%;
  margin: 22px 0 0;
}
.reading-intro > p:first-child { font-size: 1.125rem; line-height: 1.7; }
.reading-detail summary { min-height: 60px; padding-block: 18px; font-size: 1rem; }
.reading-detail summary > span {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  line-height: 1;
  border: 1px solid var(--line);
  border-radius: 50%;
}
.reading-detail summary:hover { color: #496e39; }
.reading-detail[open] summary { color: var(--ink); }
.reading-detail-copy { padding: 0 0 16px; }
.reading-facts li { min-width: min(170px, 100%); }
.media-group-heading h3, .rfx-heading h3 { line-height: 1.15; }
.page-next { padding-block: var(--space-section); }
.page-next h2 { line-height: 1.12; font-size: var(--type-section); }
.sector-page-links .text-link { font-size: 1rem; min-height: 44px; }

/* Didascalie e controlli hanno sempre una propria fascia, fuori dalla fotografia. */
.gallery-slide figcaption { padding: 16px 0; line-height: 1.6; }
.gallery-controls { padding: 16px 0 0; justify-content: flex-end; }
.gallery-controls .gallery-autoplay { font-size: .8125rem; }
.gallery-controls button { min-height: 44px; }
.gallery-thumbs { padding-inline: 0; }
.project-dialog .gallery-slide figcaption { padding-inline: 24px; }
.project-dialog .gallery-controls { padding-inline: 24px; padding-bottom: 16px; }
.project-dialog .gallery-thumbs { padding-inline: 24px; }

/* La homepage conserva cinque ambiti alla pari e un ritmo meno uniforme. */
.manifesto { padding-block: var(--space-section); }
.manifesto h2 { line-height: 1.08; }
.manifesto-copy { font-size: 1.125rem; line-height: 1.7; }
/* Titolo allineato al margine dell’elenco; numero decorativo sul lato opposto. */
.competences-intro { margin-bottom: 40px; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; }
.competences-intro > div { grid-column: 1; grid-row: 1; }
.competences-intro > .section-number { grid-column: 2; grid-row: 1; }
.sector-select { align-items: center; }
.sector-plus { align-self: center; line-height: 1; text-align: center; }
.sector-detail > p { line-height: 1.7; }
.home-solutions { padding-block: 38px var(--space-section); gap: 40px 30px; }
.solution-intro h2 { font-size: var(--type-section); }
.solution-copy { padding-block: 22px 20px; }
.solution-copy h3 { font-size: var(--type-card); line-height: 1.18; }
.solution-copy p { font-size: 1rem; line-height: 1.65; }
.solution-route { font-size: .875rem; min-height: 36px; }
.solution-number { font-size: .75rem; background: var(--white); }

/* Realizzazioni: l'immagine resta luminosa, il titolo ha spazio sotto di essa. */
.projects { padding-block: var(--space-section); }
.projects-heading { gap: 28px 40px; align-items: flex-end; }
.projects-heading h2, .inner-page .projects-heading h2 {
  font-size: var(--type-section);
  line-height: 1.12;
}
.project-filters { gap: 8px; }
.project-filters button { min-height: 44px; padding-inline: 16px; letter-spacing: 0; }
.filter-status { font-size: .875rem; margin-block: 18px 26px; }
.portfolio-more { gap: 16px 28px; }
.portfolio-more .text-link { font-size: .9375rem; }
.project-composition, .project-composition:has(.project[hidden]),
.inner-page .project-composition, .inner-page .project-composition:has(.project[hidden]) {
  grid-template-rows: none;
  grid-auto-rows: auto;
  gap: 40px 28px;
  align-items: stretch;
}
.project { min-width: 0; border-bottom: 1px solid var(--line); }
.project figure {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: transparent;
}
.project figure::after { content: none; }
.project figure > img { height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.project:hover img { transform: none; filter: none; }
.project figcaption, .inner-page .project figcaption {
  position: relative;
  inset: auto;
  flex: 1;
  padding: 22px 0 24px;
  color: var(--ink);
  background: var(--paper);
  grid-template-columns: minmax(0, 1fr) 40px;
  gap: 0 14px;
  align-content: start;
}
.project figcaption > p {
  flex-wrap: wrap;
  color: var(--ink-soft);
  font-size: .6875rem;
  letter-spacing: .08em;
  line-height: 1.6;
  margin-bottom: 12px;
}
.project h3, .project-secondary h3, .project-tertiary h3, .inner-page .project h3 {
  font-size: var(--type-card);
  line-height: 1.18;
  letter-spacing: -.035em;
}
.project-arrow {
  width: 38px;
  height: 38px;
  margin: 0;
  border-color: var(--line);
  color: var(--ink);
}
.project:hover .project-arrow { background: var(--ink); color: var(--white); }
.project figure > .gallery-count { top: 14px; left: 14px; font-size: .6875rem; }
.dialog-copy h3 { font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.12; }
.dialog-copy > p:last-child { line-height: 1.7; }

/* Azienda: i cinque disegni restano protagonisti, con testo più leggibile. */
.inner-page .page-hero-company { border-bottom: 0; padding-top: 40px; }
.page-hero-company .page-hero-copy { padding: 0; }
.page-hero-company h1 { font-size: var(--type-display); }
.page-hero-company + .company-fields { padding-bottom: var(--space-section); }
.page-hero-company + .company-fields h2 { font-size: var(--type-section); }
.company-sector { padding-top: 18px; }
.company-sector-code { font-size: .75rem; }
.company-sector h3 { font-size: clamp(1.375rem, 1.8vw, 1.75rem); line-height: 1.2; }
.company-sector p, .page-hero-company + .company-fields .company-sector p {
  font-size: 1rem;
  line-height: 1.65;
}
.company-sector-sketch { padding-block: 22px 28px; }
.company-origin { padding-block: var(--space-section); }
.company-origin h2, .company-outlook h2 { font-size: var(--type-section); line-height: 1.12; }
.company-origin-copy { font-size: 1.125rem; line-height: 1.75; }
.company-origins { gap: 18px; }
.company-origins span:not(.origin-join) { font-size: .9375rem; }
.company-mission { padding-block: var(--space-section); }
.company-mission h2 { max-width: 31ch; line-height: 1.3; }
.company-outlook { padding-block: var(--space-section); }

/* I certificati sono documenti, non pannelli verdi: carta neutra e gerarchie pulite. */
.certifications { background: #e9ece4; padding-block: var(--space-section); }
.certifications h2 { font-size: var(--type-section); line-height: 1.12; }
.certifications .certificate-grid { gap: 24px; }
.certifications .certificate-card {
  background: var(--white);
  border: 0;
  border-top: 2px solid #70876a;
}
.certificate-preview, .certificate-preview:hover { background: transparent; }
.certificate-preview { padding: 28px 28px 16px; }
.certificate-preview img { height: 260px; }
.certifications .certificate-enlarge { margin-top: 18px; font-size: .8125rem; }
.certificate-copy { padding: 20px 26px 28px; border-top: 1px solid var(--line); }
.certificate-copy h3 { font-size: 1.5rem; line-height: 1.25; }
.certificate-copy p { font-size: 1rem; line-height: 1.6; min-height: 3.2em; }
.certificate-copy a { min-height: 44px; padding-block: 10px; font-size: .875rem; }

@media (min-width: 1001px) {
  .content-section.editorial-section { gap: 22px 64px; padding-block: var(--space-section); }
  .editorial-section .content-heading h2 { font-size: clamp(1.875rem, 2.55vw, 2.5rem); }
  .inner-page .page-hero-company, .page-hero-company + .company-fields {
    width: min(1480px, calc(100% - 80px));
  }
}

@media (max-width: 1000px) {
  :root { --type-display: clamp(2.5rem, 5.3vw, 3.5rem); --space-section: 64px; }
  .inner-page .page-hero.with-image { gap: 32px; padding-block: 38px 44px; }
  .with-image h1 { font-size: clamp(2.35rem, 4.5vw, 3.25rem); }
  .page-hero-copy { padding-block: 38px 44px; }
  .page-lead { font-size: 1.125rem; }
  .content-section { gap: 28px 36px; }
  .content-heading h2 { font-size: clamp(1.875rem, 3.7vw, 2.5rem); }
  .content-body { font-size: 1.0625rem; }
  .company-fields-heading, .page-hero-company + .company-fields .company-fields-heading { gap: 32px; }
  .company-sector-grid { gap: 36px 28px; }
  .company-sector-sketch { max-width: 260px; }
  .company-sector p, .page-hero-company + .company-fields .company-sector p { font-size: .9375rem; }
  .projects-heading, .inner-page .projects-heading { flex-direction: column; align-items: flex-start; }
  .project-filters { justify-content: flex-start; }
}

.site-navigation .nav-cta[aria-current="page"] { color: var(--white); }

@media (max-width: 420px) {
  .company-sector-grid { grid-template-columns: minmax(0, 1fr); }
  .company-sector-sketch { max-width: 300px; margin-inline: auto; }
}

@media (max-width: 600px) {
  :root { --type-display: clamp(2.35rem, 10.5vw, 3.2rem); --type-section: clamp(1.9rem, 8.6vw, 2.65rem); --type-card: 1.55rem; --space-section: 48px; }
  .inner-page .page-hero.with-image { gap: 28px; padding-block: 28px 34px; }
  .page-hero-copy, .with-image .page-hero-copy { padding: 0; }
  .inner-page .page-hero:not(.with-image):not(.page-hero-company) { padding-block: 28px 34px; }
  .page-hero h1, .page-hero-company h1 { font-size: var(--type-display); letter-spacing: -.045em; line-height: 1.08; }
  .page-hero .eyebrow { margin-bottom: 14px; }
  .breadcrumbs { margin-bottom: 24px; font-size: .75rem; gap: 8px; }
  .page-lead { font-size: 1.0625rem; margin-top: 22px; line-height: 1.65; }
  .page-hero-image { height: auto; width: 100%; }
  .page-hero-image img { height: auto; max-height: none; }
  .product-hero-drawing { padding: 0 0 10px; }
  .content-section { gap: 22px; }
  .content-heading { grid-template-columns: 22px minmax(0, 1fr); column-gap: 12px; }
  .content-heading h2 { font-size: var(--type-section); }
  .content-heading .section-number { flex-basis: 22px; padding-top: .5em; }
  .content-sketch { width: min(160px, 100%); margin: 18px 0 0; }
  .content-body, .reading-intro > p:first-child { font-size: 1.0625rem; }
  .content-links .text-link, .sector-page-links .text-link { font-size: .9375rem; }
  .reading-detail-copy { font-size: 1rem; }
  .reading-facts ul { gap: 16px; }
  .gallery-slide figcaption { padding: 14px 0; font-size: .8125rem; }
  .gallery-controls { gap: 10px; padding-top: 12px; }
  .gallery-controls .gallery-autoplay { min-width: 82px; padding-inline: 6px; font-size: .75rem; }
  .gallery-status { min-width: 52px; }
  .home-solutions { gap: 32px; padding-top: 24px; }
  .solution-intro h2 { font-size: var(--type-section); }
  .solution-copy h3 { font-size: 1.65rem; }
  .solution-copy { padding-top: 18px; }
  .projects-heading { margin-bottom: 14px; }
  .project-filters button { padding-inline: 12px; font-size: .8125rem; }
  .project-composition, .project-composition:has(.project[hidden]),
  .inner-page .project-composition, .inner-page .project-composition:has(.project[hidden]) { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .project figure, .project-secondary figure, .project-tertiary figure { height: 100%; }
  .project figcaption, .inner-page .project figcaption { padding-block: 18px 22px; }
  .dialog-copy { padding: 24px 20px; }
  .dialog-copy h3 { font-size: 2rem; }
  .project-dialog .gallery-controls { padding-inline: 16px; }
  .inner-page .page-hero-company { padding-block: 28px 22px; }
  .page-hero-company + .company-fields { padding-top: 12px; }
  .company-sector-grid { gap: 30px 20px; }
  .company-sector h3 { font-size: 1.375rem; }
  .company-sector-sketch { padding-block: 20px; }
  .company-sector p, .page-hero-company + .company-fields .company-sector p { font-size: .9375rem; }
  .company-fields-heading > p, .page-hero-company + .company-fields .company-fields-heading > p { font-size: 1.0625rem; }
  .company-origins { gap: 10px; }
  .company-origins span:not(.origin-join) { font-size: .875rem; }
  .company-mission h2 { font-size: 1.875rem; }
  .certificate-preview img { height: 250px; }
  .certificate-copy { padding-inline: 22px; }
  .certificate-copy p { min-height: 0; }
  .page-next { align-items: flex-start; }
}

/* Download area shared by every page. */
.brochure-section{display:grid;grid-template-columns:1fr 1fr;gap:24px 64px;padding-block:72px;border-top:1px solid var(--line);}
.brochure-section>header,.brochure-section>div:first-child{align-self:start}
.brochure-section h2{font-size:clamp(34px,4vw,56px);font-weight:400;line-height:1.08;letter-spacing:-.045em;margin:12px 0 28px}
.brochure-section h3{font-size:clamp(23px,2.2vw,30px);font-weight:500;line-height:1.2;margin:0 0 18px}
.brochure-section article{padding:32px;background:#e5e9df;border-top:2px solid #526d40}
.brochure-section article p{line-height:1.6;max-width:52ch}
.brochure-section article a{display:inline-flex;margin:12px 24px 0 0;font-size:16px;line-height:1.5}
.brochure-section>.text-link{grid-column:2;justify-self:start}
@media(max-width:700px){.brochure-section{grid-template-columns:1fr;gap:20px;padding-block:46px}.brochure-section>.text-link{grid-column:1}.brochure-section article{padding:24px}.brochure-section h2{margin-bottom:8px}}

.content-body{min-width:0;overflow-wrap:anywhere}.brochure-actions .button{background:#17352e;color:#f0f0e8;padding:14px 20px}

.content-heading:not(:has(>.section-number)){grid-template-columns:minmax(0,1fr);row-gap:14px}
.content-heading:not(:has(>.section-number))>h2,.content-heading:not(:has(>.section-number))>.eyebrow{grid-column:1;grid-row:auto;margin:0}
.legacy-media{padding-bottom:48px}

.site-footer .footer-links{display:flex;flex-wrap:wrap;gap:4px 22px;max-width:310px;font-size:14px;line-height:1.5}
.site-footer .footer-links a{display:inline-flex;align-items:center;min-height:40px;text-decoration:underline;text-underline-offset:5px}
@media(max-width:700px){.site-footer .footer-links{max-width:100%;grid-column:1/-1}}

/* HOME PORTFOLIO OVERVIEW START — indice completo, indipendente dalle schede */
.portfolio-overview {
  color: #f1f1e8;
  background: #173b31;
  padding-block: clamp(3.5rem, 7vw, 7rem);
  margin-block: var(--space-section);
  scroll-margin-top: 110px;
}
.portfolio-overview-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: clamp(3rem, 7vw, 7rem);
  align-items: center;
}
.portfolio-overview-intro { min-width: 0; }
.portfolio-overview .eyebrow { color: #c8e587; margin: 0 0 1.4rem; }
.portfolio-overview h2 {
  margin: 0 0 1.25rem;
  font-size: var(--type-section);
  letter-spacing: -.045em;
  line-height: 1.08;
}
.portfolio-overview-intro > p:not(.eyebrow) {
  max-width: 35ch;
  font-size: clamp(1rem, 1.45vw, 1.25rem);
  line-height: 1.65;
  color: #d8e2d9;
  margin-bottom: 2.2rem;
}
.portfolio-overview-all {
  display: inline-flex;
  gap: 1.5rem;
  align-items: center;
  padding-block: .8rem;
  border-bottom: 1px solid #c8e587;
  color: #f1f1e8;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 600;
}
.portfolio-overview-all > span { color: #c8e587; font-size: 1.45rem; }
.portfolio-overview-index { min-width: 0; }
.portfolio-overview-total {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin: 0 0 1.6rem;
  color: #c8e587;
}
.portfolio-overview-total > strong {
  font-size: clamp(4rem, 7vw, 6.25rem);
  line-height: .9;
  font-weight: 400;
  letter-spacing: -.06em;
  font-variant-numeric: tabular-nums;
}
.portfolio-overview-total > span { color: #d8e2d9; font-size: .9rem; line-height: 1.45; }
.portfolio-overview-routes { border-top: 1px solid #ffffff35; }
.portfolio-overview-route {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 1.5rem;
  align-items: center;
  min-height: 4.2rem;
  padding-block: 1.1rem;
  border-bottom: 1px solid #ffffff35;
  color: #f1f1e8;
  text-decoration: none;
}
.portfolio-overview-route::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 1px;
  background: #c8e587;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
.portfolio-overview-label {
  font-size: clamp(1.15rem, 1.8vw, 1.6rem);
  line-height: 1.2;
  transition: transform .3s ease;
}
.portfolio-overview-count { color: #cfdecd; font-size: .85rem; font-variant-numeric: tabular-nums; }
.portfolio-overview-arrow { color: #c8e587; font-size: 1.6rem; line-height: 1; }
.portfolio-overview-route:is(:hover,:focus-visible)::after { transform: scaleX(1); }
.portfolio-overview-route:is(:hover,:focus-visible) .portfolio-overview-label { transform: translateX(.45rem); }
.portfolio-overview a:focus-visible { outline: 2px solid #c8e587; outline-offset: 5px; }
@media (max-width: 760px) {
  .portfolio-overview-layout { grid-template-columns: minmax(0, 1fr); gap: 2.75rem; }
  .portfolio-overview-total { margin-bottom: 1.5rem; }
  .portfolio-overview-route { gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .portfolio-overview-route::after, .portfolio-overview-label { transition: none; }
  .portfolio-overview-route:is(:hover,:focus-visible) .portfolio-overview-label { transform: none; }
}
body.motion-paused .portfolio-overview-route::after,
body.motion-paused .portfolio-overview-label { transition: none; }
/* HOME PORTFOLIO OVERVIEW END */


/* assets/motion-design.css */
/* Only SVGs successfully registered by motion-design.js are handed to GSAP.
   Without JS / any missing plugin the original, complete artwork survives. */
.cm-tech-svg.cm-motion-drawing *,
svg[data-structure-drawing].cm-motion-drawing * {
  animation: none !important;
}
/* The previous CSS trace assigned a dash to its parent group. DrawSVG owns
   strokes individually now; restore the solid authored portal outline. */
.cm-tech-svg.cm-motion-drawing .cm-tech-portal-trace {
  stroke-dasharray: none;
  stroke-dashoffset: 0;
}
/* No visibility, opacity or translate defaults: disabling motion cannot hide
   content or leave a structural member displaced from its connections. */

/* Temporary line wrappers are reverted at completion (under one second for a
   two-line heading). No clipping masks: accents and descenders keep their room. */
.cm-motion-title .cm-motion-line {
  will-change: transform;
}

/* Photo motion is a response to deliberate exploration, never a reveal that
   hides imagery while scrolling. Touch devices keep the authored crop. */
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  body:not(.motion-off) :is(.prefab-visual-tile,.industrial-model-photo) img {
    transition: transform 420ms cubic-bezier(.2,.65,.3,1);
  }
  body:not(.motion-off) :is(.prefab-visual-tile,.industrial-model-photo):is(:hover,:focus-visible) img {
    transform: scale(1.025);
  }
}

body.prefab-gallery-open { overflow: hidden; }
.prefab-image-dialog { overscroll-behavior: contain; }
.prefab-image-dialog button:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.prefab-image-dialog .prefab-image-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 16px;
}
.prefab-image-dialog .prefab-image-controls span { font-variant-numeric: tabular-nums; }
@media (prefers-reduced-motion: reduce) {
  :is(.prefab-visual-tile,.industrial-model-photo) img { transition: none !important; transform: none !important; }
}
body.motion-off :is(.prefab-visual-tile,.industrial-model-photo) img { transition: none !important; transform: none !important; }


/* assets/brand-presence.css */
/* Logo originale: più leggibile e proporzioni invariate su tutte le pagine. */
:root { --header-height: 108px; --cm-header-bottom: 140px; }
.site-header { height: var(--header-height); min-height: var(--header-height); }
.site-header .brand-logo { width: 205px; height: auto; }
.site-footer .footer-brand .brand-logo { width: 220px; height: auto; }
.site-footer .footer-brand { padding: 10px 12px; width: fit-content; }
main { padding-top: var(--cm-header-bottom); }
html { scroll-padding-top: calc(var(--cm-header-bottom) + 24px); }
.site-navigation, .menu-backdrop { top: var(--cm-header-bottom); }
.hero { height: calc(100svh - var(--cm-header-bottom)); }
@media (max-width: 600px) {
  :root { --header-height: 88px; --cm-header-bottom: 120px; }
  .site-header .brand-logo { width: 164px; }
  .site-footer .footer-brand .brand-logo { width: 190px; }
}

/* Chiusura aziendale comune: strutture e impianti, senza segnaletica stradale. */
.contact .contact-drawing { width:49%; right:0; top:10%; opacity:.28; transform:none; pointer-events:none; }
.contact-drawing .cm-company-surface { fill:currentColor; fill-opacity:.1; }
@media(max-width:860px) { .contact .contact-drawing { width:65%; right:-12%; top:auto; bottom:-24px; opacity:.18; } }
@media(max-width:600px) { .contact .contact-drawing { width:85%; right:-16%; bottom:-26px; opacity:.16; } }


/* assets/home-activities.css */
/* Homepage: five equally weighted technical illustrations, one route per sector. */
.home-activities {
  padding-block: clamp(52px, 6.5vw, 104px) clamp(60px, 7vw, 112px);
  border-top: 1px solid var(--line);
}
.home-activities-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, .7fr);
  gap: clamp(24px, 5vw, 80px);
  align-items: end;
  margin-bottom: clamp(36px, 4vw, 64px);
}
.home-activities-heading > div { min-width: 0; }
.home-activities-heading .eyebrow { margin: 0 0 18px; }
.home-activities-heading h2 {
  margin: 0;
  font-size: var(--type-section, clamp(36px, 4.2vw, 58px));
  line-height: 1.08;
  letter-spacing: -.04em;
  font-weight: 400;
  text-align: left;
}
.home-activities-heading > p {
  max-width: 35ch;
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.65;
}
.home-activities .company-sector-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 32px);
}
.home-activities .company-sector {
  display: grid;
  grid-template-rows: auto auto auto 1fr;
  align-content: start;
  padding-block: 20px 14px;
  text-decoration: none;
  scroll-margin-top: 130px;
}
.home-activities .company-sector-sketch {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-block: 32px;
}
.home-activities .company-sector h3 {
  font-size: var(--type-card, clamp(1.375rem, 1.8vw, 1.75rem));
  line-height: 1.2;
  min-height: 2.4em;
  margin: 0 0 16px;
  text-wrap: balance;
}
.home-activities .company-sector p {
  font-size: 1rem;
  line-height: 1.65;
  margin: 0;
}
@media (min-width: 1800px) {
  .home-activities .company-sector h3 { min-height: 1.2em; }
}
@media (max-width: 1199px) {
  .home-activities .company-sector-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 28px; }
  .home-activities .company-sector h3 { min-height: 0; }
}
@media (max-width: 849px) {
  .home-activities-heading { grid-template-columns: 1fr; gap: 22px; }
  .home-activities-heading > p { max-width: 45ch; }
  .home-activities .company-sector-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .home-activities .company-sector-grid { grid-template-columns: 1fr; gap: 32px; }
  .home-activities .company-sector-sketch { max-width: 380px; margin-inline: auto; padding-block: 22px; }
  .home-activities .company-sector h3 { margin-bottom: 12px; }
  .home-activities-heading .eyebrow { margin-bottom: 14px; }
}


/* assets/palette-logo.css */
/* Variante «Colori del logo»: solo presentazione, attiva con data-palette="logo".
   Il tema verde rimane intatto. Fotografie e logo conservano i colori originali. */
html[data-palette="logo"] {
  --paper: #f2f6f8;
  --paper-deep: #e3edf2;
  --white: #ffffff;
  --ink: #102c50;
  --ink-soft: #435e74;
  --water: #138fbe;
  --water-deep: #1d548c;
  --water-bright: #d2edf7;
  --signal: #9adcf0;
  --line: #c7d7e1;
  --logo-cyan: #138fbe;
  --logo-blue: #1d548c;
  --logo-link: #12668e;
  --logo-dark: #102c50;
}
html[data-palette="logo"] ::selection { background: #b6e6f4; color: #102c50; }
html[data-palette="logo"] :focus-visible { outline-color: #12668e; }
html[data-palette="logo"] :is(.hero,.contact,.method,.portfolio-overview,.company-mission) :focus-visible { outline-color: var(--signal); }
html[data-palette="logo"] :is(.solution-card,.company-sector):focus-visible,
html[data-palette="logo"] .prefab-item:focus-within { outline-color: var(--logo-blue); }

/* Navigazione: bianco pieno per il marchio, blu profondo per la struttura. */
html[data-palette="logo"] .preview-bar { background: var(--logo-dark); color: #e2f1f8; }
html[data-palette="logo"] .status-dot { box-shadow: 0 0 0 4px #138fbe24; }
html[data-palette="logo"] .site-header { background: #fff; }
html[data-palette="logo"] .site-header.is-scrolled { box-shadow: 0 5px 30px #102c5010; }
html[data-palette="logo"] .site-navigation { box-shadow: -20px 30px 50px #102c5015; }
html[data-palette="logo"] .submenu { box-shadow: 0 16px 35px #102c5020; }
html[data-palette="logo"] .submenu-toggle { border-color: #7995ac; }
html[data-palette="logo"] .menu-backdrop { background: #102c5066; }
html[data-palette="logo"] .site-navigation a[aria-current="page"],
html[data-palette="logo"] .site-navigation > a:not(.nav-cta):hover,
html[data-palette="logo"] .nav-group > a:hover,
html[data-palette="logo"] .submenu a:hover { color: var(--logo-link); }
html[data-palette="logo"] .nav-cta:hover { background: var(--logo-blue); color: white; }
html[data-palette="logo"] .reading-progress { background: var(--logo-cyan); }

/* Video e fotografie: velature blu trasparenti, nessun filtro sull'immagine. */
html[data-palette="logo"] .hero { background: var(--logo-dark); }
html[data-palette="logo"] .hero-wash { background: linear-gradient(90deg,#102c50e6 0%,#102c50d4 33%,#102c5033 80%),linear-gradient(0deg,#102c5099,transparent 50%); }
html[data-palette="logo"] .hero .eyebrow { color: #d5ecf6; }
html[data-palette="logo"] .hero h1 em { color: #b6e6f4; }
html[data-palette="logo"] .hero-lede { color: #e9f1f7; }
html[data-palette="logo"] .hero-structure { color: #d8edf8; }
html[data-palette="logo"] .video-toggle { background: #102c5066; }
html[data-palette="logo"] .motion-toggle { color: #eef6fa; }
html[data-palette="logo"] .button-light:hover { background: #c3ecf8; }
html[data-palette="logo"] .sector-rail { background: #102c50ed; }
html[data-palette="logo"] .sector-rail a:hover { background: var(--signal); }
html[data-palette="logo"] .sector-visual { background: var(--logo-dark); color: #eaf5fb; }
html[data-palette="logo"] .stage-visual .sector-visual { background: transparent; }
html[data-palette="logo"] .stage-visual:after,
html[data-palette="logo"] .sector-detail .sector-visual:after { background: linear-gradient(transparent,#102c50c9); }
html[data-palette="logo"] .sector-visual .technical-drawing { color: #f1f8fc; background: radial-gradient(ellipse at 60% 70%,#102c5070,transparent 69%); filter: drop-shadow(0 2px 5px #102c5070); }
html[data-palette="logo"] .project figure:after { background: linear-gradient(0deg,#091e3ada,#091e3a05 64%); }
html[data-palette="logo"] .prefab-item-commercial:after { background: linear-gradient(transparent 25%,#102c50cc); }
html[data-palette="logo"] .prefab-item-commercial h4,
html[data-palette="logo"] .prefab-item-commercial span { color: #f4f9fc; }

/* Blocchi editoriali e disegni tecnici. */
html[data-palette="logo"] .competences { background: #fff; }
html[data-palette="logo"] :is(.section-number,.competence-id,.sector-no,.company-sector-code,.composition-arrived .section-number) { color: var(--logo-link); }
html[data-palette="logo"] .sector-select:hover,
html[data-palette="logo"] .reading-detail summary:hover,
html[data-palette="logo"] .text-link:hover,
html[data-palette="logo"] .company-sector:hover h3 { color: var(--logo-link); }
html[data-palette="logo"] .sector-item.is-active { border-bottom-color: var(--ink); }
html[data-palette="logo"] :is(.stage-wordmark,.stage-caption > span:last-child,.breadcrumbs,.page-lead,.filter-status,.solution-copy p,.company-sector p,.company-outlook figcaption,.product-hero-drawing figcaption) { color: var(--ink-soft); }
html[data-palette="logo"] :is(.solution-drawing,.company-sector-sketch,.product-hero-drawing,.content-sketch) { color: var(--logo-blue); }
html[data-palette="logo"] .cm-tech-svg .cm-tech-accent { color: var(--signal); stroke: var(--signal); }
html[data-palette="logo"] :is(.solution-drawing,.company-sector-sketch,.product-hero-drawing,.content-sketch) .cm-tech-accent { color: var(--logo-cyan); stroke: var(--logo-cyan); }
html[data-palette="logo"] .composition-line { color: var(--logo-cyan); }
html[data-palette="logo"] .solution-card:after,
html[data-palette="logo"] .gallery-controls:after { background: var(--logo-cyan); }
html[data-palette="logo"] .gallery-controls:before { background: #102c5014; }
html[data-palette="logo"] .prefab-showcase { background: var(--paper-deep); }
html[data-palette="logo"] .prefab-item-text { background: var(--logo-blue); }
html[data-palette="logo"] .prefab-item p { color: #e4f1f9; }
html[data-palette="logo"] .prefab-item-last p { color: var(--ink-soft); }
html[data-palette="logo"] .prefab-item-last span { color: var(--logo-link); }
html[data-palette="logo"] .reading-facts li,
html[data-palette="logo"] .company-origins > div,
html[data-palette="logo"] .company-sector { border-color: #7995ac; }
html[data-palette="logo"] .origin-join { color: var(--logo-cyan); }
html[data-palette="logo"] :is(.detail-breakout,.method,.company-mission,.contact,.site-footer,.portfolio-overview) { background: var(--logo-dark); }
html[data-palette="logo"] .company-mission,
html[data-palette="logo"] .portfolio-overview,
html[data-palette="logo"] :is(.portfolio-overview-all,.portfolio-overview-route) { color: #f4f9fc; }
html[data-palette="logo"] :is(.method-drawing,.contact-drawing,.company-mission .eyebrow,.portfolio-overview .eyebrow,.portfolio-overview-total,.portfolio-overview-all > span,.portfolio-overview-arrow) { color: var(--signal); }
html[data-palette="logo"] .portfolio-overview-route:after { background: var(--signal); }
html[data-palette="logo"] .portfolio-overview-all { border-color: var(--signal); }
html[data-palette="logo"] :is(.portfolio-overview-intro > p:not(.eyebrow),.portfolio-overview-total > span,.portfolio-overview-count,.method-heading > p:last-child,.contact-meta,.footer-links,.site-footer p,.site-footer > a:last-child) { color: #cfdeeb; }
html[data-palette="logo"] .contact-link { color: #b6e6f4; }
html[data-palette="logo"] .contact-orbit span { box-shadow: 0 0 0 12px #138fbe26; }
html[data-palette="logo"] :is(.hero,.contact,.method,.portfolio-overview) .text-link:hover { color: var(--signal); }

/* Brochure, documenti e realizzazioni: superfici neutre, testo ad alto contrasto. */
html[data-palette="logo"] .certifications { background: #e5edf2; }
html[data-palette="logo"] :is(.certifications .eyebrow.light,.certifications li span) { color: var(--logo-link); }
html[data-palette="logo"] .certifications ul { border-color: #7995ac; }
html[data-palette="logo"] .certifications li { border-color: #b2c8d7; }
html[data-palette="logo"] .certifications .certificate-card { background: #f8fbfd; border-color: #b2c8d7; }
html[data-palette="logo"] .certificate-preview { background: #dce8ef; }
html[data-palette="logo"] .certificate-preview:hover { background: #c8dfeb; }
html[data-palette="logo"] .certificate-preview img { filter: drop-shadow(0 5px 7px #102c5020); }
html[data-palette="logo"] .certifications .certificate-enlarge { color: var(--ink); }
html[data-palette="logo"] :is(.certificate-dialog,.certificate-dialog-heading,.certificate-dialog > img) { background: var(--paper); }
html[data-palette="logo"] .certificate-dialog .dialog-close { background: var(--logo-dark); color: white; }
html[data-palette="logo"] .brochure-section article { background: #e3edf2; border-top-color: var(--logo-blue); }
html[data-palette="logo"] :is(.brochure-actions .button,.page-next .button,.brochure-link .button) { background: var(--logo-dark); color: white; }
html[data-palette="logo"] :is(.brochure-actions .button,.page-next .button,.brochure-link .button):hover { background: var(--logo-blue); }
html[data-palette="logo"] :is(.photo-gallery,.gallery-slide figcaption) { background: #e8eff3; color: var(--ink); }
html[data-palette="logo"] .page-photo { background: #e8eff3; }
html[data-palette="logo"] :is(.page-video,.page-hero-autostrade .page-hero-image) { background: #0c1723; }
html[data-palette="logo"] .gallery-track { scrollbar-color: var(--logo-cyan) #d8e4ec; }
html[data-palette="logo"] .gallery-controls button { border-color: #7995ac; color: var(--ink); }
html[data-palette="logo"] .gallery-controls button:not(:disabled):hover { background: #c6e7f4; color: var(--ink); }
html[data-palette="logo"] .gallery-thumbs button[aria-pressed="true"] { border-color: var(--logo-blue); }
html[data-palette="logo"] .gallery-count { background: #102c50d9; color: #f4f9fc; }
html[data-palette="logo"] .project-dialog { box-shadow: 0 30px 90px #091c3a59; }
html[data-palette="logo"] .project-dialog::backdrop { background: #091c3ac2; }
html[data-palette="logo"] .dialog-close { border-color: #c7d7e1; }
html[data-palette="logo"] .project-dialog .gallery-slide img { background: transparent; }


/* wordpress-layout.css */
/*
Theme Name: CM Infrastrutture
Description: Tema locale CM Costruzioni, con pagine editoriali, realizzazioni e gallerie. Nessuna dipendenza da Elementor.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: cm-infrastrutture
License: Proprietary
*/
/* Gli stili del sito sono caricati in ordine da assets/. */
.cm-entry > .wp-block-paragraph, .cm-entry > p, .cm-entry > .wp-block-heading,
.cm-entry > .wp-block-list, .cm-entry > .wp-block-image, .cm-entry > .wp-block-gallery {
  width: var(--shell); max-width: 900px; margin-inline: auto;
}
.cm-entry > p, .cm-entry > .wp-block-paragraph { font-size: 18px; line-height: 1.75; }
.cm-search-form { display:flex; flex-wrap:wrap; gap:12px; margin-block:28px; }
.cm-search-form input { min-width:0; flex:1 1 220px; padding:14px; border:1px solid var(--line); background:var(--white); font:inherit; }
.cm-search-form button { border:0; background:var(--ink); color:var(--white); padding:14px 22px; cursor:pointer; }
.cm-search-result { border-bottom:1px solid var(--line); padding-block:28px; }
.cm-search-result h2 { font-size:clamp(26px,3vw,38px); font-weight:400; }
.cm-search-result p { max-width:70ch; }
.admin-bar .preview-bar { top:32px; }
.admin-bar .site-header { top:64px; }
.admin-bar .site-navigation, .admin-bar .menu-backdrop { top:148px; }
@media(max-width:782px){.admin-bar .preview-bar{top:46px}.admin-bar .site-header{top:78px}.admin-bar .site-navigation,.admin-bar .menu-backdrop{top:162px}}
@media(max-width:600px){.admin-bar .site-header{top:74px}.admin-bar .site-navigation,.admin-bar .menu-backdrop{top:148px}}
.submenu ul{list-style:none;padding-left:18px;margin:0}


/* assets/typography.css */
/* CM — scala tipografica condivisa, indipendente dalla variante cromatica.
   Caricare dopo i fogli di composizione: titoli, testo e dettagli hanno ruoli stabili. */
:root {
  --type-hero: clamp(4rem, 5.2vw, 5rem);
  --type-display: clamp(3rem, 4vw, 3.75rem);
  --type-section: clamp(2.5rem, 3.2vw, 3rem);
  --type-card: clamp(1.5rem, 1.9vw, 1.75rem);
  --type-body: 1.125rem;
  --type-lead: 1.25rem;
  --type-ui: 1rem;
  --type-label: .875rem;
}

body { font-size: var(--type-body); line-height: 1.65; }
h2, h3 { text-wrap: balance; }
.page-lead, .prefab-section-heading > p { text-wrap: pretty; }
.hero h1 { font-size: var(--type-hero); line-height: 1.08; letter-spacing: -.045em; }
.page-hero h1, .with-image h1, .page-hero-company h1 {
  font-size: var(--type-display);
  line-height: 1.12;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.manifesto h2, .competences h2, .projects h2,
.projects-heading h2, .inner-page .projects-heading h2,
.method h2, .company h2, .contact h2, .certifications h2,
.solution-intro h2, .portfolio-overview h2, .home-activities-heading h2,
.content-heading h2, .editorial-section .content-heading h2,
.company-fields h2, .page-hero-company + .company-fields h2,
.company-origin h2, .company-outlook h2, .company-mission h2,
.brochure-section h2, .page-next h2 {
  font-size: var(--type-section);
  line-height: 1.16;
  letter-spacing: -.035em;
}
.company-sector h3, .solution-copy h3,
.project h3, .project-secondary h3, .project-tertiary h3, .inner-page .project h3,
.method-steps h3, .certificate-copy h3, .certificate-dialog-heading h3,
.media-group-heading h3, .rfx-heading h3, .brochure-section h3,
.competence-row h3, .prefab-heading h3, .prefab-item h4,
.cm-search-result h2 {
  font-size: var(--type-card);
  line-height: 1.25;
  letter-spacing: -.025em;
}
.dialog-copy h3 { font-size: var(--type-section); line-height: 1.18; letter-spacing: -.035em; }
.sector-select { font-size: var(--type-card); line-height: 1.25; letter-spacing: -.025em; }

/* Stesso ruolo editoriale, stesso corpo in tutte le pagine. */
.hero-lede, .page-lead, .page-hero-company .page-lead,
.company-lede { font-size: var(--type-lead); line-height: 1.65; letter-spacing: 0; }
.content-body, .editorial-section > .content-body,
.content-body p, .content-body li, .cm-entry > p, .cm-entry > .wp-block-paragraph,
.manifesto-copy, .company-columns, .company-origin-copy,
.company-fields-heading > p, .page-hero-company + .company-fields .company-fields-heading > p,
.company-outlook p:not(.eyebrow), .sector-detail > p,
.solution-copy p, .company-sector p, .home-activities .company-sector p, .page-hero-company + .company-fields .company-sector p,
.reading-intro > p:first-child, .reading-detail-copy, .reading-facts,
.section-description, .rfx-heading p:not(.eyebrow), .certificate-copy p,
.dialog-copy > p:not(.eyebrow), .method-heading > p:last-child,
.method-steps p, .brochure-section article p,
.portfolio-overview-intro > p:not(.eyebrow) {
  font-size: var(--type-body);
  line-height: 1.65;
}
.mission-statement { font-size: var(--type-card); line-height: 1.5; letter-spacing: -.02em; }
.company-origins strong, .portfolio-overview-label { font-size: var(--type-card); line-height: 1.3; }
.company-origins span:not(.origin-join) { font-size: var(--type-ui); line-height: 1.6; }
.portfolio-overview-total > strong { font-size: var(--type-display); line-height: 1.1; }
.portfolio-overview-total > span { font-size: var(--type-ui); line-height: 1.5; }

/* Numeri, didascalie e microtesti leggibili: nessuna informazione in corpo 8–11 px. */
.eyebrow, .hero .eyebrow, .section-number, .content-heading .section-number,
.sector-no, .solution-number, .company-sector-code, .competence-id,
.section-client span, .method-steps li > span, .certifications li span,
.vertical-note, .stage-toolbar, .stage-wordmark, .stage-caption,
.gallery-status, .gallery-slide figcaption, .page-photo figcaption,
.company-outlook figcaption, .product-hero-drawing figcaption,
.project figcaption > p, .project figure > .gallery-count,
.portfolio-overview-count, .filter-status, .breadcrumbs,
.certifications .certificate-enlarge, .certificate-copy a,
.gallery-controls .gallery-autoplay, .motion-toggle, .video-toggle,
.site-footer p, .site-footer > a:last-child, .site-footer .footer-links,
.editorial-status {
  font-size: var(--type-label);
  line-height: 1.5;
}
.eyebrow, .hero .eyebrow, .section-number, .company-sector-code,
.stage-wordmark, .project figcaption > p { letter-spacing: .08em; }
.section-number, .sector-no, .solution-number, .company-sector-code,
.gallery-status, .portfolio-overview-count { font-variant-numeric: tabular-nums; }
.solution-number { min-width: 2rem; min-height: 2rem; display: inline-grid; place-items: center; }
.sector-no { min-width: 2rem; }

/* Azioni e navigazione: una sola scala, distinta dai testi editoriali. */
.text-link, .button, .hero-actions .text-link,
.content-links .text-link, .sector-page-links .text-link,
.sector-detail .text-link, .company-outlook-links .text-link,
.portfolio-more .text-link, .rfx-heading .text-link,
.certificate-dialog-heading .text-link, .brochure-section article a,
.solution-route, .project-filters button, .portfolio-overview-all,
.reading-detail summary, .submenu a, .contact-meta {
  font-size: var(--type-ui);
  line-height: 1.5;
}
.site-navigation > a:not(.nav-cta), .nav-group > a {
  font-size: var(--type-card);
  line-height: 1.3;
  letter-spacing: -.025em;
}
.site-navigation .nav-cta, .contact-link { font-size: var(--type-lead); line-height: 1.5; }
.preview-bar, .preview-bar nav { font-size: .8125rem; line-height: 1.4; }

/* I contenitori possono restringersi: niente tagli sui titoli lunghi o email. */
.company-sector h3, .solution-copy h3, .project h3,
.page-hero h1, .content-heading h2, .dialog-copy h3,
.contact-link, .site-navigation > a, .nav-group > a {
  min-width: 0;
  overflow-wrap: break-word;
}
.contact-link { max-width: 100%; }
.contact-meta { flex-wrap: wrap; }
.company-sector h3, .project h3 { text-wrap: pretty; }

@media (min-width: 601px) and (max-width: 1000px) {
  :root {
    --type-hero: clamp(3rem, 7vw, 4rem);
    --type-display: clamp(2.5rem, 5.5vw, 3rem);
    --type-section: clamp(2.125rem, 4.5vw, 2.5rem);
  }
}
@media (max-width: 600px) {
  :root {
    --type-hero: clamp(2.75rem, 11.5vw, 3rem);
    --type-display: clamp(2.375rem, 10vw, 2.5rem);
    --type-section: clamp(1.875rem, 8vw, 2.125rem);
    --type-card: 1.375rem;
    --type-body: 1rem;
    --type-lead: 1.125rem;
    --type-ui: 1rem;
    --type-label: .8125rem;
  }
  .hero-actions { flex-wrap: wrap; gap: 16px 24px; }
  .hero-actions .button { gap: 18px; }
  .contact-link { gap: 12px; }
  .contact-link:hover { gap: 16px; }
  .portfolio-overview-route { gap: .75rem; }
  .preview-bar nav { gap: 12px; }
}


/* assets/home-structure.css */
/* Homepage only: a single editorial sequence and consistent section spacing. */
body:not(.inner-page) { --home-section-space: clamp(48px, 5.5vw, 88px); }
body:not(.inner-page) .home-activities,
body:not(.inner-page) .portfolio-overview,
body:not(.inner-page) .home-about,
body:not(.inner-page) .home-certificates,
body:not(.inner-page) .brochure-section { padding-block: var(--home-section-space); }
body:not(.inner-page) .home-activities { border-top: 0; }
body:not(.inner-page) .home-activities-heading { margin-bottom: 40px; }
body:not(.inner-page) .home-about {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
}
.home-about-heading .eyebrow,
.home-certificates-heading .eyebrow { margin: 0 0 16px; }
.home-about-heading h2,
.home-certificates-heading h2 {
  margin: 0;
  font-size: var(--type-section);
  line-height: 1.16;
  letter-spacing: -.035em;
  font-weight: 400;
  text-align: left;
}
.home-about-copy { min-width: 0; }
.home-about-copy p { margin: 0 0 20px; }
.home-about-copy .text-link { margin-top: 8px; }
.home-certificates {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(32px, 6vw, 96px);
  align-items: start;
  border-top: 1px solid var(--line);
}
.home-certificates-heading .text-link { margin-top: 26px; }
.home-document-list {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 28px;
  margin: 0;
  padding: 0;
}
.home-document-list li { min-width: 0; border-top: 1px solid var(--line); }
.home-document-list a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding-block: 20px;
  text-decoration: none;
}
.home-document-list a > span:first-child { min-width: 0; }
.home-document-format { white-space: nowrap; font-size: var(--type-label); }
.home-document-list a:is(:hover, :focus-visible) > span:first-child { text-decoration: underline; text-underline-offset: .25em; }
.home-document-list a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
body:not(.inner-page) .brochure-section { border-top: 1px solid var(--line); }
@media (max-width: 849px) {
  body:not(.inner-page) .home-about,
  .home-certificates { grid-template-columns: 1fr; gap: 28px; }
  body:not(.inner-page) .home-activities-heading { margin-bottom: 30px; }
}
@media (max-width: 599px) {
  .home-document-list { grid-template-columns: 1fr; }
  .home-document-list a { padding-block: 16px; }
  .home-certificates-heading .text-link { margin-top: 20px; }
}

/* Stable editorial hierarchy throughout the homepage. */
body:not(.inner-page) main h2 { font-weight: 400; }
body:not(.inner-page) .certifications { padding-block: var(--home-section-space); }
body:not(.inner-page) .certificate-preview img { height: 240px; }
@media (max-width:600px) {
  body:not(.inner-page) .certificate-preview img { height: 220px; }
}


/* assets/company-identity.css */
/* Company page: one technical composition for the three original company values. */
.company-values { padding-block: clamp(36px, 5vw, 72px); border-top: 1px solid var(--line); }
.company-values-heading { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(30px, 6vw, 96px); align-items: start; }
.company-values-heading .eyebrow { margin: 0 0 16px; }
.company-values-heading h2 { font-size: var(--type-section); line-height: 1.16; letter-spacing: -.035em; font-weight: 400; margin: 0; }
.company-values-heading > p { font-size: var(--type-body); line-height: 1.65; margin: 0; }
.company-values-visual { margin: 20px 0 36px; }
.company-values-graphic { display: block; width: 100%; max-height: 360px; overflow: visible; }
.company-values-graphic * { vector-effect: non-scaling-stroke; }
.company-values-graphic .values-flow path { stroke-dasharray: 1; stroke-dashoffset: 0; animation: cm-values-connect 1.3s ease-out both; }
.company-values-visual figcaption { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); text-align: center; gap: 20px; margin-top: -4px; font-size: var(--type-card); line-height: 1.3; letter-spacing: -.025em; }
.company-values-statement { max-width: 72ch; margin: 42px auto 0; font-size: var(--type-body); line-height: 1.65; text-align: center; }
.company-story { padding-block: 36px clamp(48px, 5vw, 80px); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 6vw, 96px); }
.company-story .eyebrow { margin: 0 0 18px; }
.company-story p:not(.eyebrow) { font-size: var(--type-body); line-height: 1.65; margin: 0 0 24px; }
.company-story .company-outlook-links { margin-top: 28px; }
@keyframes cm-values-connect { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@media (max-width: 849px) {
  .company-values-heading, .company-story { grid-template-columns: 1fr; gap: 26px; }
  .company-values-visual { margin-block: 20px 30px; }
  .company-values-statement { margin-top: 30px; text-align: left; }
}
@media (max-width: 599px) {
  .company-values-visual figcaption { font-size: var(--type-ui); letter-spacing: 0; gap: 12px; }
  .company-values-graphic { min-height: 170px; }
  .company-story { padding-top: 28px; }
}
@media (prefers-reduced-motion: reduce) { .company-values-graphic .values-flow path { animation: none; } }
.motion-off .company-values-graphic .values-flow path,
.motion-paused .company-values-graphic .values-flow path { animation: none; }

.inner-page .page-hero-company { width: var(--shell); max-width: none; }

/* The same two-column grid aligns the introduction, mission and company story. */
.page-hero-company .page-hero-copy,
.company-values-heading, .company-story {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(32px, 5vw, 72px);
}
.company-values-visual { max-width: 1080px; margin: 24px auto 12px; }
.company-values-graphic { height: auto; max-height: none; }
.company-values-visual figcaption { gap: 32px; margin-top: 0; }
.company-values-visual figcaption h3 { font-size: var(--type-card); line-height: 1.3; font-weight: 400; margin: 0 0 16px; }
.company-values-visual figcaption p { font-size: var(--type-body); line-height: 1.65; letter-spacing: 0; margin: 0; }
@media (max-width:849px) {
  .page-hero-company .page-hero-copy, .company-values-heading, .company-story { grid-template-columns: 1fr; }
  .page-hero-company .page-lead { grid-column: 1; grid-row: auto; margin-top: 24px; }
  .company-values-visual figcaption { gap: 18px; }
  .company-values-visual figcaption p { font-size: var(--type-ui); }
}
@media (max-width:599px) {
  .company-values-visual figcaption { grid-template-columns: 1fr; gap: 24px; text-align: left; }
  .company-values-visual figcaption h3 { margin-bottom: 8px; }
  .company-values-graphic { min-height: 0; }
}

@media (min-width:600px) {
  .company-values-visual figcaption { column-gap: 0; }
  .company-values-visual figcaption > div { padding-inline: 16px; }
}

/* Eyebrows occupy their own row: paragraphs begin alongside the actual titles. */
@media (min-width:850px) {
  .page-hero-company .page-hero-copy { align-items: start; }
  .page-hero-company .breadcrumbs { grid-row: 1; }
  .page-hero-company .eyebrow { grid-row: 2; }
  .page-hero-company h1 { grid-row: 3; }
  .page-hero-company .page-lead { grid-column: 2; grid-row: 3; margin: 0; padding-top: 8px; }
  .company-values-heading { row-gap: 16px; }
  .company-values-heading > div { display: contents; }
  .company-values-heading .eyebrow { grid-column: 1/-1; grid-row: 1; margin: 0; }
  .company-values-heading h2 { grid-column: 1; grid-row: 2; }
  .company-values-heading > p { grid-column: 2; grid-row: 2; padding-top: 5px; }
  .company-values { padding-top: 56px; }
  .company-values-visual { margin-top: 48px; }
}
@media (max-width:849px) {
  .page-hero-company .page-hero-copy { display: block; }
}

/* Company introduction and values form one narrative, without separate text columns. */
.inner-page .page-hero-company { padding-bottom: 44px; }
.page-hero-company .page-hero-copy { display: block; }
.page-hero-company .eyebrow { margin-bottom: 16px; }
.page-hero-company .page-lead { max-width: 760px; margin-top: 24px; padding-top: 0; }
.company-values-heading { display: block; }
.company-values-heading > div { display: block; }
.company-values-heading .eyebrow { margin-bottom: 16px; }
.company-values-visual { margin-top: 24px; }
.company-values-visual figcaption { text-align: left; }
.company-values-visual figcaption > div { padding-inline: 24px; }
.company-values-visual figcaption h3 { padding-top: 20px; border-top: 1px solid var(--line); }
.company-story { display: block; }
.company-story > div:first-child { max-width: 760px; }
.company-story-actions .company-outlook-links { margin-top: 24px; }
@media (max-width:599px) {
  .inner-page .page-hero-company { padding-bottom: 28px; }
  .company-values-visual figcaption > div { padding-inline: 0; }
  .company-values-visual figcaption h3 { padding-top: 16px; }
}

/* Every value keeps its drawing and text together, including on phones. */
.company-values-visual { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; max-width: none; margin-top: 36px; }
.company-value-card { margin: 0; min-width: 0; }
.company-value-card > svg { display: block; width: 100%; height: 240px; }
.company-value-card svg * { vector-effect: non-scaling-stroke; }
.company-values-visual .company-value-card figcaption { display: block; text-align: left; margin: 0; }
.company-value-card h3 { font-size: var(--type-card); line-height: 1.3; margin: 0 0 16px; font-weight: 400; }
@media (max-width:849px) { .company-values-visual { gap: 20px; } .company-value-card > svg { height: 180px; } }
@media (max-width:599px) {
  .company-values-visual { grid-template-columns: 1fr; gap: 28px; }
  .company-value-card { display: grid; grid-template-columns: 90px minmax(0,1fr); gap: 20px; align-items: start; padding-top: 24px; border-top: 1px solid var(--line); }
  .company-value-card > svg { height: 100px; }
  .company-values-visual .company-value-card h3 { border: 0; padding-top: 0; }
}


/* assets/home-mosaic.css */
/* The home portfolio is a visual invitation to the complete, filterable archive. */
.home-work-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; margin-bottom: 32px; }
.home-work-heading h2 { margin: 0; }
.home-work-heading .portfolio-overview-all { margin: 0; }
.home-work-mosaic { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 14px; }
.home-work-tile {
  grid-column: span 3;
  position: relative;
  display: block;
  min-width: 0;
  height: clamp(300px, 24vw, 360px);
  padding: 0;
  border: 0;
  border-radius: 0;
  overflow: hidden;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  text-decoration: none;
}
.home-work-tile:first-child, .home-work-tile:last-child { grid-column: span 6; }
.home-work-tile > img { display: block; width: 100%; height: 100%; object-fit: cover; filter: none; transform: none; }
.home-work-caption {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 14px;
  padding: 18px;
  background: var(--paper, #f4f2eb);
  color: var(--ink, #17352e);
  font-size: var(--type-ui);
  line-height: 1.4;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: none;
}
.home-work-caption > span:first-child { min-width: 0; }
.home-work-caption > span:last-child { flex: none; font-size: 1.5em; line-height: 1; }
.home-work-tile:is(:hover, :focus-visible) .home-work-caption { opacity: 1; transform: none; }
.portfolio-overview .home-work-tile:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.home-work-routes { display: flex; flex-wrap: wrap; gap: 0 30px; margin-top: 24px; }
.home-work-routes .portfolio-overview-route { display: flex; gap: 12px; min-height: 0; padding: 14px 0; }
.home-work-routes .portfolio-overview-label { font-size: var(--type-ui); line-height: 1.4; }
.home-work-routes .portfolio-overview-count { font-size: var(--type-label); }
.home-work-routes .portfolio-overview-arrow { font-size: var(--type-ui); }
@media (max-width: 999px) {
  .home-work-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-work-tile { grid-column: auto; height: 270px; }
  .home-work-tile:first-child, .home-work-tile:last-child { grid-column: 1/-1; height: 320px; }
  .home-work-caption { opacity: 1; transform: none; }
}
@media (max-width: 599px) {
  .home-work-heading { align-items: start; flex-direction: column; gap: 18px; margin-bottom: 24px; }
  .home-work-mosaic { gap: 10px; }
  .home-work-tile { height: 230px; }
  .home-work-tile:first-child, .home-work-tile:last-child { height: 280px; }
  .home-work-caption { padding: 12px; gap: 8px; font-size: var(--type-label); }
  .home-work-caption > span:first-child { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
  .home-work-routes { gap: 0 22px; }
}
@media (hover: none) { .home-work-caption { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .home-work-caption { transition: none; } }
.motion-off .home-work-caption { transition: none; }


/* assets/company-location.css */
/* Local, stylised location map. Italy outline and marker share one projection. */
.company-location {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 5vw, 72px);
  align-items: center;
  padding-block: clamp(44px, 5vw, 80px);
  border-top: 1px solid var(--line);
}
.company-location-copy .eyebrow { margin: 0 0 16px; }
.company-location-copy h2 {
  margin: 0 0 28px;
  font-size: var(--type-section);
  font-weight: 400;
  line-height: 1.16;
  letter-spacing: -.035em;
}
.company-location-copy address { font-style: normal; font-size: var(--type-body); line-height: 1.65; margin: 0 0 26px; }
.company-location-copy address strong { font-weight: 500; }
.company-location-figure { margin: 0; min-width: 0; }
.company-location-map { display: block; width: 100%; max-width: 520px; height: auto; margin-inline: auto; overflow: visible; }
.company-location-map .location-country { fill: currentColor; fill-opacity: .045; stroke: currentColor; stroke-opacity: .55; stroke-width: 1.2; stroke-linejoin: round; }
.company-location-map .location-leader { fill: none; stroke: currentColor; stroke-width: 1; stroke-opacity: .65; }
.company-location-map .location-marker-ring { fill: none; stroke: currentColor; stroke-width: 1; stroke-opacity: .4; }
.company-location-map .location-marker { fill: currentColor; }
.company-location-map text { fill: currentColor; font: 16px Inter, sans-serif; }
@media (max-width: 699px) {
  .company-location { grid-template-columns: 1fr; gap: 28px; }
  .company-location-copy h2 { margin-bottom: 24px; }
  .company-location-map { max-width: 420px; }
}

@media (max-width:599px) { .company-location-map text { font-size: 22px; } }


/* assets/prefab-layout.css */
/* CM — Prefabbricazione. Una griglia editoriale, fotografie documentate, dati leggibili.
   Colori ereditati dai token del tema, anche nella variante ?tema=logo. */

/* Gerarchia e ritmo comuni alle tre famiglie. */
.prefab-section-heading { display:block; max-width:940px; margin-bottom:32px; }
.prefab-section-heading h2 { font-size:var(--type-section); font-weight:400; line-height:1.16; letter-spacing:-.035em; margin:0; text-wrap:balance; }
.prefab-section-heading > p:not(.eyebrow) { max-width:65ch; margin:18px 0 0; font-size:var(--type-body); line-height:1.65; }
.prefab-section-heading > .eyebrow { margin:0 0 16px; font-size:var(--type-label); }
.prefab-feature { padding-block:clamp(40px,5.5vw,80px); }
.prefab-feature + .prefab-feature { border-top:1px solid var(--line); }
.prefab-feature:has(> .prefab-feature-copy) { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(32px,6vw,88px); }
.prefab-feature-copy h2 { font-size:var(--type-section); line-height:1.13; letter-spacing:-.035em; font-weight:400; margin:16px 0 26px; }
.prefab-feature-copy p { font-size:var(--type-body); line-height:1.65; max-width:48ch; }
.prefab-feature-copy .prefab-uses { font-size:var(--type-ui); margin-block:24px 32px; }
.prefab-feature-photo { display:block; text-decoration:none; }
.prefab-feature-photo img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.prefab-feature-photo > span { display:flex; justify-content:space-between; gap:20px; padding-top:14px; font-size:var(--type-ui); }
body:has(.prefab-family-nav) .page-hero,body:has(.prefab-feature-copy) .page-hero { padding-block:24px 28px; }
body:has(.prefab-family-nav) .page-hero .eyebrow,body:has(.prefab-feature-copy) .page-hero .eyebrow { display:none; }
body:has(.prefab-family-nav) .page-hero h1,body:has(.prefab-feature-copy) .page-hero h1 { margin-block:16px 20px; }
body:has(.prefab-family-nav) .page-lead,body:has(.prefab-feature-copy) .page-lead { margin-bottom:0; }
.prefab-detail-content > .prefab-feature:first-child,.industrial-realizations { padding-top:30px; }

/* Navigazione diretta, senza livelli annidati. */
.prefab-family-nav,.prefab-hub-index { display:flex; align-items:center; gap:8px 28px; flex-wrap:wrap; padding-block:12px; border-block:1px solid var(--line); }
.prefab-family-nav a,.prefab-hub-index a { font-size:var(--type-ui); line-height:1.5; padding:8px 0; text-decoration:none; }
.prefab-family-nav a[aria-current],.prefab-family-nav a:is(:hover,:focus-visible),.prefab-hub-index a:is(:hover,:focus-visible) { text-decoration:underline; text-underline-offset:6px; }
.prefab-family-nav a:first-child { margin-right:auto; }
/* Le tre famiglie sono accessi diretti, subordinati al titolo del settore. */
.site-navigation .nav-group > a { padding-bottom:6px; min-height:56px; }
.nav-family-links { grid-column:1/-1; display:flex; align-items:center; gap:0 16px; list-style:none; padding:0 0 10px; margin:0; }
.nav-family-links a { display:flex; align-items:center; min-height:40px; padding:0; font-size:15px; font-weight:400; line-height:1.4; white-space:nowrap; text-decoration:none; }
.nav-family-links a:is(:hover,:focus-visible) { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:600px) {
  .nav-family-links { display:block; padding:0 0 8px 12px; }
  .nav-family-links a { min-height:36px; white-space:normal; }
}
.prefab-hub-section { padding-block:clamp(44px,5vw,76px); scroll-margin-top:calc(var(--cm-header-bottom,140px) + 24px); }
.prefab-hub-section + .prefab-hub-section { border-top:1px solid var(--line); }

/* Fotografie: didascalie sotto le immagini, nessun bordo colorato. */
.prefab-visual-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px 22px; margin-block:30px 12px; }
.prefab-visual-tile { display:flex; flex-direction:column; margin:0; min-width:0; text-decoration:none; }
.prefab-visual-tile > a { display:block; }
.prefab-visual-tile img { display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.prefab-visual-tile figcaption,.prefab-visual-tile > span { display:flex; justify-content:space-between; gap:16px; padding-top:12px; font-size:var(--type-ui); line-height:1.45; }
.prefab-visual-caption > span { flex:none; }
.prefab-visual-grid--two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.prefab-visual-grid--two .prefab-visual-tile img { aspect-ratio:16/10; }
.prefab-mosaic { grid-template-columns:repeat(3,minmax(0,1fr)); }
.prefab-mosaic > :first-child { grid-column:span 2; grid-row:span 2; }
.prefab-mosaic > :first-child img { flex:1; min-height:0; aspect-ratio:auto; height:100%; object-position:50% 50%; }
.prefab-mosaic > :nth-child(2) img,.prefab-mosaic > :nth-child(3) img { aspect-ratio:16/10; }
.prefab-story-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); gap:24px; }
.prefab-story-grid > :first-child { grid-column:span 2; grid-row:span 2; align-self:center; }
.prefab-story-grid > :first-child > a { display:block; }
.prefab-story-grid > :first-child img { height:auto; aspect-ratio:auto; object-fit:contain; }
.prefab-story-grid > :not(:first-child) img { aspect-ratio:16/10; }
.prefab-visual-grid--portrait { grid-template-columns:repeat(3,minmax(0,1fr)); }
.prefab-visual-grid--portrait .prefab-visual-tile img { aspect-ratio:3/4; object-fit:contain; }
.prefab-feature .page-video { max-height:560px; margin-block:30px; }

/* Sistema modulare: disegno e applicazioni sullo stesso piano di lettura. */
.industrial-custom-heading { max-width:850px; }
.industrial-system { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); align-items:center; gap:clamp(32px,6vw,88px); }
.industrial-system-figure { margin:0; min-width:0; }
.industrial-system-drawing { display:block; width:100%; height:auto; color:var(--ink); }
.industrial-system-figure figcaption,.industrial-model-geometry figcaption { font-size:var(--type-label); line-height:1.5; margin:10px 0 0; }
.industrial-system-copy { min-width:0; }
.industrial-system-copy > .eyebrow { margin:0 0 20px; }
.industrial-applications { list-style:none; padding:0; display:grid; gap:0; margin:0; }
.industrial-application { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:baseline; gap:18px; border-top:1px solid var(--line); padding:18px 0; min-width:0; }
.industrial-application > span { font-size:var(--type-label); font-variant-numeric:tabular-nums; }
.industrial-application h3 { font-size:var(--type-card); line-height:1.3; font-weight:400; margin:0; }
.industrial-custom-note { font-size:var(--type-body); line-height:1.65; margin:24px 0 0; max-width:44ch; }

/* Esempi industriali: ogni fotografia è affiancata alle proprie dimensioni. */
.industrial-model-grid { display:grid; gap:0; margin-top:40px; }
.industrial-model { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(28px,5vw,72px); align-items:center; border-top:1px solid var(--line); padding-block:40px; min-width:0; }
.industrial-model-photo { display:block; min-width:0; text-decoration:none; }
.industrial-model-photo img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:contain; }
.industrial-model-photo > span { display:flex; justify-content:space-between; padding-top:12px; gap:20px; font-size:var(--type-label); }
.industrial-model-copy { min-width:0; }
.industrial-model-copy > .eyebrow { margin:0 0 10px; font-size:var(--type-label); }
.industrial-model h3 { font-size:var(--type-section); line-height:1.1; letter-spacing:-.035em; font-weight:400; margin:0 0 18px; }
.industrial-model-copy > p:not(.eyebrow) { font-size:var(--type-body); line-height:1.65; max-width:49ch; margin:0 0 24px; }
.industrial-model-dimensions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; padding-block:20px; border-block:1px solid var(--line); }
.industrial-model-dimensions dt { font-size:var(--type-label); line-height:1.4; margin:0 0 8px; }
.industrial-model-dimensions dd { margin:0; font-size:clamp(20px,2vw,28px); line-height:1.2; letter-spacing:-.03em; font-variant-numeric:tabular-nums; white-space:nowrap; }
.industrial-model-dimensions dd span { font-size:var(--type-label); letter-spacing:0; }
.industrial-model-geometry { display:flex; align-items:center; gap:20px; margin:20px 0 0; }
.model-technical-sketch { display:block; width:190px; max-width:55%; height:auto; flex:none; color:var(--ink); }
.industrial-model-geometry figcaption { max-width:16ch; margin:0; }
.industrial-model-edi { grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); padding-block:44px; }
.industrial-model-edi .industrial-model-geometry { display:block; margin:0; }
.industrial-model-edi .model-technical-sketch { width:100%; max-width:420px; margin-inline:auto; }
.industrial-model-edi figcaption { max-width:none; text-align:center; }
.industrial-process { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:28px; }
.prefab-process-step { border-top:1px solid var(--line); padding-top:24px; }
.prefab-process-step h3 { font-size:var(--type-card); line-height:1.3; font-weight:500; margin:0 0 16px; }
.prefab-process-step p { font-size:var(--type-body); line-height:1.65; }
.prefab-process-step > .eyebrow { font-size:var(--type-label); margin:0 0 14px; }

/* Le altre famiglie conservano i propri contenuti e la propria identità. */
.prefab-family-feature { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:clamp(28px,5vw,72px); padding-block:56px; border-top:1px solid var(--line); }
.prefab-family-feature h2 { font-size:var(--type-section); line-height:1.16; letter-spacing:-.035em; font-weight:400; margin:16px 0 24px; }
.prefab-family-feature p { font-size:var(--type-body); line-height:1.65; }
.prefab-family-feature .text-link { margin-top:18px; }
.prefab-family-photo img { width:100%; display:block; aspect-ratio:16/10; height:auto; object-fit:cover; }
.prefab-family-caption { display:block; font-size:var(--type-label); line-height:1.5; padding-top:12px; }
.prefab-family-residential .prefab-family-photo { order:2; }
.prefab-archive-link { display:flex; justify-content:space-between; align-items:center; gap:28px; padding-block:40px; border-top:1px solid var(--line); }
.prefab-archive-link h2 { font-size:var(--type-card); font-weight:400; margin:0; }
.prefab-copy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 48px; padding-block:32px; }
.prefab-copy-grid:has(> :nth-child(3)) { grid-template-columns:repeat(3,minmax(0,1fr)); }
.prefab-copy-grid h2,.prefab-copy-grid h3,.prefab-facts h3,.prefab-facts h4 { font-size:var(--type-card); font-weight:500; line-height:1.3; margin:0 0 18px; }
.prefab-copy-grid p,.prefab-facts p,.prefab-facts li { font-size:var(--type-body); line-height:1.65; }
.prefab-facts { display:block; padding-block:28px; margin-block:28px; border-top:1px solid var(--line); }
.prefab-facts > * { border:0; padding-top:0; }
.prefab-process-drawing { display:block; width:120px; max-width:100%; height:100px; margin-bottom:24px; color:var(--ink); }
.prefab-graphic-card { min-width:0; }

/* Schede di navigazione esistenti. */
.prefab-card-grid { display:grid; gap:clamp(24px,3vw,44px); }
.prefab-card-grid-three,.prefab-model-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.prefab-card-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.prefab-card { display:flex; flex-direction:column; min-width:0; text-decoration:none; color:inherit; }
.prefab-photo-card > img { display:block; width:100%; aspect-ratio:16/10; height:auto; object-fit:cover; }
.prefab-card-copy { display:flex; flex:1; flex-direction:column; padding-top:24px; }
.prefab-card h3,.prefab-model h3 { font-size:var(--type-card); font-weight:500; line-height:1.25; letter-spacing:-.025em; margin:0 0 16px; }
.prefab-card p,.prefab-model p { font-size:var(--type-body); line-height:1.65; margin:0 0 24px; }
.prefab-card-action { display:flex; justify-content:space-between; align-items:baseline; gap:20px; margin-top:auto; padding-top:8px; font-size:var(--type-ui); line-height:1.45; }
.prefab-text-card { border-top:1px solid var(--line); padding-bottom:8px; }
.prefab-card:is(:hover,:focus-visible) h3 { text-decoration:underline; text-underline-offset:.18em; text-decoration-thickness:1px; }
.prefab-model-grid { display:grid; gap:clamp(24px,3vw,44px); }
.prefab-model { min-width:0; border-top:1px solid var(--line); padding-top:24px; }
.prefab-model .prefab-model-size { font-size:var(--type-ui); margin:0 0 24px; }
.prefab-model .page-photo { margin:0 0 24px; width:100%; background:transparent; }
.prefab-model .page-photo img { width:100%; height:auto; aspect-ratio:4/3; object-fit:contain; background:transparent; }
.prefab-model .page-photo::before,.prefab-model .page-photo::after { content:none; }
.prefab-model .page-photo figcaption { display:none; }

/* Ingrandimento: lo stesso comportamento per tutte le fotografie. */
.prefab-image-dialog { width:min(1120px,94vw); max-height:94dvh; padding:18px; background:var(--paper,#f2f1e8); color:var(--ink,#163730); border:0; }
.prefab-image-dialog::backdrop { background:rgb(7 22 27 / .82); backdrop-filter:blur(5px); }
.prefab-image-dialog img { display:block; max-width:100%; width:auto; height:auto; max-height:72dvh; object-fit:contain; margin:auto; }
.prefab-image-dialog header { display:flex; justify-content:space-between; gap:24px; align-items:center; margin-bottom:16px; }
.prefab-image-dialog p { font-size:var(--type-ui); margin:0; }
.prefab-image-dialog button { background:transparent; color:inherit; border:1px solid currentColor; min-width:44px; min-height:44px; cursor:pointer; }
.prefab-image-controls { display:flex; justify-content:center; gap:20px; align-items:center; margin-top:14px; }
:is(.prefab-card,.prefab-hub-index a,.prefab-family-nav a,.prefab-visual-tile,.prefab-visual-tile > a,.industrial-model-photo):focus-visible { outline:2px solid currentColor; outline-offset:6px; }

@media (max-width:999px) {
  .industrial-model { gap:32px; }
  .industrial-model-geometry { margin-top:16px; }
  .model-technical-sketch { width:155px; }
  .industrial-system { gap:32px; }
  .industrial-application h3 { font-size:22px; }
  .industrial-model-dimensions dd { font-size:22px; }
}
@media (max-width:849px) {
  .prefab-feature:has(> .prefab-feature-copy) { grid-template-columns:1fr; }
  .prefab-feature-photo img { max-height:580px; }
  .prefab-card-grid-three,.prefab-model-grid { grid-template-columns:1fr; }
  .prefab-photo-card { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .prefab-photo-card .prefab-card-copy { padding-top:0; }
  .prefab-photo-card > img { align-self:start; }
  .industrial-model { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:28px; }
  .industrial-model-dimensions { gap:8px; }
  .industrial-model-dimensions dd { font-size:20px; }
  .industrial-model-dimensions dd span { display:block; margin-top:4px; }
  .industrial-model-geometry { gap:10px; }
  .industrial-system { grid-template-columns:1fr 1fr; gap:24px; }
  .industrial-system-drawing text { font-size:20px; }
  .prefab-copy-grid,.prefab-copy-grid:has(> :nth-child(3)) { gap:24px; }
  .industrial-process { gap:24px; }
}
@media (max-width:699px) {
  .prefab-feature { padding-block:40px; }
  .prefab-section-heading { margin-bottom:26px; }
  .prefab-family-feature { grid-template-columns:1fr; gap:24px; padding-block:36px; }
  .prefab-family-residential .prefab-family-photo { order:0; }
  .industrial-system { grid-template-columns:1fr; gap:30px; }
  .industrial-system-drawing text { font-size:24px; }
  .industrial-system-figure { max-width:500px; }
  .industrial-system-copy { display:grid; grid-template-columns:1fr; }
  .industrial-applications { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
  .industrial-application { gap:10px; grid-template-columns:22px minmax(0,1fr); padding-block:16px; }
  .industrial-application h3 { font-size:18px; }
  .industrial-custom-note { max-width:60ch; }
  .industrial-model,.industrial-model-edi { grid-template-columns:1fr; gap:28px; padding-block:30px; }
  .industrial-model-copy > p:not(.eyebrow) { max-width:none; }
  .industrial-model-dimensions dd { font-size:26px; }
  .industrial-model-dimensions dd span { display:inline; }
  .industrial-model-geometry { gap:24px; }
  .model-technical-sketch { width:190px; }
  .industrial-model-edi .model-technical-sketch { max-width:340px; }
  .industrial-process { grid-template-columns:1fr; gap:26px; margin-top:16px; }
  .prefab-copy-grid,.prefab-copy-grid:has(> :nth-child(3)) { grid-template-columns:1fr; }
  .prefab-story-grid { grid-template-columns:1fr; gap:26px; }
  .prefab-story-grid > :first-child { grid-column:auto; grid-row:auto; }
  .prefab-story-grid > :first-child img,.prefab-story-grid > :not(:first-child) img { height:auto; aspect-ratio:auto; }
  .prefab-mosaic { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 16px; }
  .prefab-mosaic > :first-child { grid-column:1/-1; grid-row:auto; }
  .prefab-mosaic > :first-child img { height:auto; aspect-ratio:4/3; }
  .prefab-mosaic > :last-child { grid-column:1/-1; }
  .prefab-mosaic > :last-child img { aspect-ratio:16/9; }
  .prefab-mosaic > :nth-child(2) img,.prefab-mosaic > :nth-child(3) img { aspect-ratio:4/3; }
  .prefab-visual-grid--portrait { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:599px) {
  .prefab-card-grid-two { grid-template-columns:1fr; gap:28px; }
  .prefab-photo-card { display:flex; gap:0; }
  .prefab-photo-card .prefab-card-copy { padding-top:20px; }
  .prefab-visual-grid--two { grid-template-columns:1fr; }
  .prefab-visual-tile figcaption,.prefab-visual-tile > span { font-size:var(--type-label); }
  .prefab-feature-photo img { max-height:none; }
  .prefab-family-nav { gap:4px 18px; }
  .prefab-family-nav a:first-child { flex-basis:100%; }
  .prefab-archive-link { align-items:start; flex-direction:column; }
  .industrial-model-dimensions dd { font-size:23px; }
  .industrial-model-geometry figcaption { font-size:var(--type-label); }
}
@media (max-width:399px) {
  .prefab-mosaic { grid-template-columns:1fr; }
  .prefab-mosaic > :first-child,.prefab-mosaic > :last-child { grid-column:auto; }
  .prefab-mosaic > .prefab-visual-tile img { aspect-ratio:4/3; }
  .industrial-applications { grid-template-columns:1fr; }
  .industrial-model-dimensions dd { font-size:22px; }
  .industrial-model-dimensions dd span { display:block; }
  .industrial-model-geometry { gap:16px; }
  .model-technical-sketch { width:165px; }
}


/* assets/depurazione-layout.css */
/* 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; }
}


/* site.css */
/* CM full-site variant. Existing identity and palette tokens remain authoritative. */
.cv-site{--cv-space:clamp(48px,6vw,88px)}
.cv-site :is(a,button,summary):focus-visible{outline:2px solid currentColor;outline-offset:5px}
.cv-site [id]{scroll-margin-top:110px}
.cv-tools{display:flex;align-items:center;gap:12px 28px;flex-wrap:wrap;width:var(--shell);margin:0 auto;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5}
.cv-tools>span{letter-spacing:.12em;font-size:10px;margin-right:auto}
.cv-tools a{text-decoration:underline;text-underline-offset:4px}
.cv-tools .motion-toggle{position:static;font-size:12px;padding:8px 12px;min-height:36px;color:var(--ink);border-color:var(--line)}
.cv-tools .motion-toggle span{color:inherit}
.cv-noscript{display:flex;flex-wrap:wrap;gap:16px 26px;width:var(--shell);margin:25px auto;padding:20px 0;border-block:1px solid var(--line)}
.cv-noscript a{font-size:15px;color:var(--ink)}
.cv-site .page-hero{min-height:0;padding-block:30px 40px}
.cv-site .page-hero-copy{padding-block:0}
.cv-site .page-hero h1{max-width:20ch;font-size:clamp(38px,4.4vw,68px);line-height:1.07}
.cv-site .page-hero .breadcrumbs{margin-bottom:28px}
.cv-site .page-lead{max-width:65ch;font-size:clamp(17px,1.5vw,21px);line-height:1.65}
.cv-site .page-hero.with-image{gap:5vw;padding-block:38px 48px}
.cv-site .page-hero-image img{max-height:520px;object-fit:contain}
.cv-site:has(.prefab-family-nav) .page-hero h1{font-size:clamp(38px,4vw,58px);max-width:24ch}
.cv-site .prefab-detail-content>.prefab-feature:first-child{padding-top:26px}
@media(min-width:1001px){.cv-site .prefab-detail-content>.prefab-feature:first-child>.prefab-section-heading{display:grid;grid-template-columns:.9fr 1.1fr;gap:22px 60px;max-width:none;margin-bottom:26px;align-items:start}.cv-site .prefab-detail-content>.prefab-feature:first-child>.prefab-section-heading>.eyebrow{display:none}.cv-site .prefab-detail-content>.prefab-feature:first-child>.prefab-section-heading>h2{margin:0;font-size:32px}.cv-site .prefab-detail-content>.prefab-feature:first-child>.prefab-section-heading>p{margin:0;font-size:17px}}
.cv-statement{font-size:clamp(23px,2.2vw,34px);letter-spacing:-.025em;margin:25px 0 0}
.cv-site .content-section{padding-block:var(--cv-space)}
.cv-site .content-body{max-width:72ch}
.cv-site .brochure-section{padding-block:36px;border-top:1px solid var(--line)}
.cv-site .brochure-section h2{font-size:clamp(26px,2.8vw,38px)}
.cv-site .brochure-section article{padding-block:22px}
.cv-site .brochure-section article p{font-size:15px;line-height:1.6;max-width:58ch}
.cv-site .brochure-section :is(svg,.brochure-art,.brochure-visual){max-height:130px}
.cv-site .brochure-section .eyebrow{margin-bottom:12px}
.cv-site .company-location{padding-block:48px}
.cv-site .company-location iframe{max-height:300px}
.cv-contatti .contact{min-height:0;padding-block:50px}
.cv-contatti .contact h2{font-size:clamp(28px,3.3vw,46px);max-width:22ch}
.cv-contatti .contact-meta{margin-top:30px}
.cv-index{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px;border-block:1px solid var(--line);padding-block:12px;margin-block:20px 0}
.cv-index a{display:flex;gap:12px;padding:15px 0;font-size:14px;line-height:1.5;text-decoration:none;border-bottom:1px solid var(--line)}
.cv-index a span{font-size:11px;opacity:.6;min-width:22px}
.cv-index a:hover{text-decoration:underline;text-underline-offset:5px}
.cv-family-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:42px}
.cv-family{display:block;text-decoration:none}
.cv-family img{width:100%;height:230px;object-fit:cover}
.cv-family:nth-child(2) img{object-position:center 62%}
.cv-family span{display:flex;justify-content:space-between;font-size:clamp(22px,2.3vw,33px);padding:16px 0;border-bottom:1px solid var(--line)}
.cv-family:hover span{border-color:currentColor}
.cv-story{display:grid;grid-template-columns:1fr;position:relative;gap:clamp(30px,5vw,80px)}
.cv-step{padding:35px 0 50px;border-top:1px solid var(--line);min-width:0}
.cv-step h3{font-weight:400;font-size:clamp(28px,3.6vw,52px);line-height:1.1;letter-spacing:-.045em;margin:20px 0}
.cv-step>p:not(.eyebrow){font-size:18px;line-height:1.7;max-width:47ch;margin:0 0 24px}
.cv-step .text-link{font-size:17px;display:inline-block}
.cv-frame{margin:28px 0 0;min-width:0}
.cv-frame img{display:block;width:auto;max-width:100%;height:auto;max-height:560px;aspect-ratio:auto;object-fit:contain;background:transparent;margin-inline:auto}
.cv-frame figcaption{padding-top:12px;font-size:13px;line-height:1.5}
.cv-story-stage,.cv-select{display:none}
.cv-story.is-enhanced{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)}
.cv-story.is-enhanced .cv-step{min-height:390px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
.cv-story.is-enhanced .cv-step:last-child{min-height:calc(70vh + 90px)}
.cv-story.is-enhanced .cv-step.is-active{border-top-color:var(--ink)}
.cv-story.is-enhanced .cv-story-stage{display:block;position:sticky;top:155px;height:fit-content;align-self:start;min-width:0}
.cv-story.is-enhanced .cv-frame{margin:0}
.cv-story.is-enhanced .cv-frame[hidden]{display:none}
.cv-story.is-enhanced .cv-frame img{max-height:65vh;aspect-ratio:auto;object-fit:contain}
.cv-story.is-enhanced .cv-select{display:block;margin-top:25px;padding:12px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:inherit;font:inherit;font-size:13px;cursor:pointer}
.cv-select[aria-pressed=true]{border-bottom-color:var(--ink)!important}
.cv-moduli-commerciali .cv-story.is-enhanced .cv-frame img{aspect-ratio:auto;max-height:70vh}
.cv-more{border-block:1px solid var(--line);padding:20px 0;margin-top:32px}
.cv-more summary{cursor:pointer;font-size:17px;padding:6px 0}
.cv-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:24px}
.cv-residential-evidence.prefab-story-grid{grid-template-columns:1fr 1fr;gap:28px}
.cv-residential-evidence.prefab-story-grid>figure{grid-column:auto;grid-row:auto;align-self:start}
.cv-residential-evidence.prefab-story-grid>figure img{width:100%;aspect-ratio:4/3;object-fit:contain;height:auto}
.cv-residential-evidence.prefab-story-grid>.cv-render-secondary{grid-column:1/-1;max-width:480px;width:100%;justify-self:end;padding-top:12px}
.cv-residential-evidence.prefab-story-grid>.cv-render-secondary img{aspect-ratio:16/9}
.cv-site :is(.prefab-feature-photo,.industrial-model-photo) img{aspect-ratio:auto;background:transparent}
.cv-site :is(.az-diptych,.az-inline-photo) img{aspect-ratio:auto;background:transparent}
.cv-site .az-stage-frame>a>img{width:auto;max-width:100%;height:auto;max-height:clamp(190px,34vh,360px);object-fit:contain;background:transparent;margin-inline:auto}
.cv-site .contact{--drawing-surface:var(--ink)}
.cv-site .az-stage-schema{justify-content:center;padding-top:10px;margin-top:18px}
.cv-site .az-stage-schema svg{width:min(100%,430px);height:clamp(130px,22vh,220px);flex-shrink:1}
.cv-diagram-key{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;justify-content:center;margin:20px 0}
.cv-diagram-key span{border-top:1px solid var(--line);padding:12px 8px}
.cv-assembly-controls{display:none;gap:18px;justify-content:center;margin-top:20px}
.cv-enhanced:not(.motion-off) .cv-assembly-controls{display:flex}
.cv-assembly-controls button{border:0;border-bottom:1px solid var(--line);font:inherit;font-size:13px;color:inherit;background:transparent;padding:10px 0;cursor:pointer}
.cv-detail-pair{grid-column:1/-1;display:grid;grid-template-columns:.8fr 1.1fr .7fr;gap:28px;align-items:center;margin-top:30px}
.cv-detail-pair h3{font-size:clamp(26px,2.8vw,38px);font-weight:400;line-height:1.1;letter-spacing:-.035em}
.cv-detail-pair p:not(.eyebrow){font-size:16px;line-height:1.7}
.cv-detail-pair .cv-frame{margin:0}
.cv-detail-pair .cv-frame img{max-height:380px;aspect-ratio:auto}
.cv-site .cv-vertical-gallery .photo-gallery{max-width:580px;justify-self:center;width:100%}
.cv-site .cv-vertical-gallery .gallery-slide img{height:560px;object-fit:contain;background:var(--paper)}
.cv-site .water-heading p:not(.eyebrow){max-width:70ch}
.cv-work-nav{display:flex;flex-wrap:wrap;gap:14px 30px;background:var(--white);padding-block:16px;border-block:1px solid var(--line);font-size:14px;position:sticky;top:140px;z-index:6}
.cv-work-nav a{padding-block:6px}
.cv-site .water-art-flow{animation:none;stroke-dashoffset:0}
.cv-site .project-composition,.cv-site .project-composition:has(.project[hidden]){grid-template-rows:none;grid-auto-rows:auto;align-items:stretch}
.cv-realizzazioni .project{display:flex;flex-direction:column;border-bottom:1px solid var(--line);padding-bottom:22px}
.cv-realizzazioni .project[hidden]{display:none}
.cv-realizzazioni .project figure{background:transparent;min-height:0;height:auto;overflow:visible;flex:1}
.cv-realizzazioni .project figure:after{content:none}
.cv-realizzazioni .project img{display:block;height:260px;width:100%;object-fit:cover}
.cv-realizzazioni .project figcaption{position:static;padding:18px 0;color:var(--ink);background:none}
.cv-realizzazioni .project figcaption p{color:var(--ink);opacity:.7;font-size:11px}
.cv-realizzazioni .project h3{font-size:clamp(23px,2vw,30px);line-height:1.2;margin-bottom:0}
.cv-realizzazioni .project h3 a{text-decoration:none}
.cv-realizzazioni .project h3 a:hover{text-decoration:underline;text-underline-offset:5px}
.cv-realizzazioni .project-arrow{display:none}
.cv-realizzazioni .project .project-trigger{position:static;inset:auto;width:fit-content;z-index:auto;padding:8px 0;border-bottom:1px solid var(--ink);color:var(--ink);font:inherit;font-size:14px;text-align:left}
.cv-realizzazioni .projects-heading{margin-bottom:32px}
.cv-site .project-filters button:after{content:attr(data-count);display:inline-block;margin-left:8px;opacity:.75;font-size:10px}
.cv-related{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 45px;padding-block:40px}
.cv-related>p{grid-column:1/-1;margin:0}
.cv-related a{font-size:17px;line-height:1.4;padding-bottom:15px;border-bottom:1px solid var(--line)}
.cv-site:is(.cv-privacy-policy,.cv-cookie-policy) .content-section{display:block;max-width:760px;margin-inline:auto}
.cv-site:is(.cv-privacy-policy,.cv-cookie-policy) .content-heading{margin-bottom:20px}
.cv-site:is(.cv-privacy-policy,.cv-cookie-policy) .content-body{font-size:17px;line-height:1.8}
.cv-map{margin:0;background:#f0f0e8;color:#17352e;font-family:Arial,sans-serif;line-height:1.6}
.cv-map main{max-width:1000px;margin:60px auto;padding:0 25px}
.cv-map h1{font-size:clamp(40px,6vw,76px);font-weight:400;letter-spacing:-.05em;line-height:1.05}
.cv-map a{color:inherit;text-underline-offset:5px}
.cv-map ul{padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 40px;margin:40px 0}
.cv-map li{padding:15px 0;border-bottom:1px solid #ccd2c7;display:flex;gap:18px;justify-content:space-between}
.cv-map li>a:nth-child(2){font-size:12px;white-space:nowrap}
@media(max-width:1000px){.cv-index{grid-template-columns:repeat(2,minmax(0,1fr))}.cv-family img{height:180px}.cv-detail-pair{grid-template-columns:1fr 1fr}.cv-detail-pair header{grid-column:1/-1}.cv-tools{gap:10px 18px}.cv-story:not(.is-enhanced) .cv-step{display:grid;grid-template-columns:1fr 1fr;column-gap:28px}.cv-story:not(.is-enhanced) .cv-step>:not(figure){grid-column:1}.cv-story:not(.is-enhanced) .cv-frame{grid-column:2;grid-row:1/5;align-self:center;margin:0}.cv-work-nav{position:static}}
@media(max-width:600px){.cv-site [id]{scroll-margin-top:25px}.cv-tools{font-size:11px;padding-block:12px;gap:10px 16px}.cv-tools>span{width:100%;font-size:9px}.cv-tools .motion-toggle{padding:5px 8px;font-size:11px}.cv-site .page-hero,.cv-site .page-hero.with-image{padding-block:28px}.cv-site .page-hero h1{font-size:38px}.cv-index{display:block}.cv-index a{font-size:13px;padding:12px 0}.cv-family-doors{grid-template-columns:1fr;gap:24px;margin-top:28px}.cv-family{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px}.cv-family img{height:140px}.cv-family span{font-size:23px;line-height:1.2}.cv-story:not(.is-enhanced) .cv-step{display:block;padding:28px 0 35px}.cv-story:not(.is-enhanced) .cv-frame{margin:26px 0 0}.cv-step h3{font-size:34px}.cv-step>p:not(.eyebrow){font-size:16px}.cv-frame img{max-height:430px}.cv-residential-evidence.prefab-story-grid{grid-template-columns:1fr}.cv-more-grid{grid-template-columns:1fr}.cv-detail-pair{grid-template-columns:1fr;gap:22px}.cv-detail-pair header{grid-column:auto}.cv-detail-pair .cv-frame:last-child{max-width:300px;justify-self:center}.cv-site .cv-vertical-gallery .gallery-slide img{height:440px}.cv-related{grid-template-columns:1fr;gap:16px}.cv-realizzazioni .project img{height:auto;aspect-ratio:4/3}.cv-site .water-photo-grid{gap:20px 14px}.cv-site.cv-enhanced .water-reportage .water-photo-grid>.water-photo:nth-child(n+4){display:none}.cv-map ul{grid-template-columns:1fr}.cv-site .brochure-section{padding-block:28px}.cv-site .brochure-section article{padding-block:16px}}
@media(prefers-reduced-motion:reduce){.cv-site *, .cv-site *:before,.cv-site *:after{scroll-behavior:auto!important}.cv-site .water-art-flow{animation:none}.cv-enhanced .cv-assembly-controls{display:none!important}}
.cv-site .drawing-active :is(.cm-tech-module,.cm-tech-frame-front) {
  animation-name: cv-connected-reveal;
}
@keyframes cv-connected-reveal {
  from {opacity:0}
  to {opacity:1}
}
/* A single document band; certificate navigation belongs to its own section. */
.cv-site .brochure-section.cv-brochure-band{display:block;width:100%;max-width:none;margin:0;padding:0;background:#e5e9df;border-top:2px solid #526d40}
.cv-site .cv-brochure-band .brochure-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px 50px;align-items:center;padding:40px 0;border:0;background:transparent}
.cv-site .cv-brochure-band h2{margin:0 0 16px;font-size:clamp(26px,2.8vw,38px)}
.cv-site .cv-brochure-band .brochure-actions{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center}
.cv-site .cv-brochure-band .brochure-actions a{margin:0;font-size:15px}
.cv-site .cv-brochure-band .cv-download-size{margin:9px 0 0;font-size:12px;line-height:1.4}
.cv-site .cv-brochure-band .brochure-actions{align-items:flex-start}
.cv-site .cv-brochure-band .brochure-actions>.text-link{margin-top:17px}
.cv-site .cv-certifications-link{grid-column:1/-1;justify-self:start;margin-top:8px}
.cv-address{display:inline-block;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.cv-address:hover{color:var(--signal)}
.cv-gallery-fallback{display:grid;gap:10px;font-size:14px;line-height:1.5;padding-top:16px}
.cv-site .cv-tile-sos img{object-position:center 50%}
@media(min-width:1000px){.cv-home .home-work-tile{height:auto;aspect-ratio:3/4}.cv-home .home-work-tile:first-child,.cv-home .home-work-tile:last-child{aspect-ratio:3/2}}
@media(max-width:999px){.cv-home .home-work-tile{display:flex;flex-direction:column;height:auto;aspect-ratio:auto}.cv-home .home-work-tile>img{height:auto;aspect-ratio:3/4}.cv-home .home-work-tile:first-child>img,.cv-home .home-work-tile:last-child>img{aspect-ratio:3/2}.cv-home .home-work-caption{position:static;flex:1;align-items:start}.cv-home .home-work-caption>span:first-child{display:block;-webkit-line-clamp:unset;overflow:visible}}
.cv-realizzazioni .cv-vetro-sos img{height:260px;width:auto;max-width:100%;object-fit:contain;aspect-ratio:auto;margin-inline:auto}
html[data-palette="logo"] .cv-site .cv-brochure-band{background:#e3edf2;border-top-color:var(--logo-blue)}
html[data-palette="logo"] .cv-site .cv-brochure-band article{background:transparent}
@media(max-width:1100px){.cv-site .cv-brochure-band .brochure-card{grid-template-columns:1fr;gap:20px}}
@media(max-width:600px){.cv-site .cv-brochure-band .brochure-card{padding-block:30px}.cv-site .cv-brochure-band .brochure-actions{align-items:flex-start;flex-direction:column}.cv-site .cv-brochure-band .brochure-actions a{font-size:13px}.cv-site .cv-tile-sos img{object-fit:cover}.cv-site .cv-tile-carpenteria img{object-position:45% center}}
/* Prefabbricati: a general construction story, with family navigation at the end. */
.cv-prefabbricati .cv-prefab-intro{padding-block:32px 60px}
.cv-prefab-intro-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,100px);align-items:end}
.cv-prefab-intro h1{margin:0;max-width:none!important}
.cv-prefab-intro-copy>p:last-child{font-size:17px;line-height:1.7;margin:18px 0 0;max-width:56ch}
.cv-prefab-intro-copy .page-lead{font-size:clamp(23px,2.1vw,30px);line-height:1.4;letter-spacing:-.025em;margin:0}
.cv-prefab-system,.cv-prefab-making,.cv-prefab-families{padding-block:clamp(42px,5vw,72px);border-top:1px solid var(--line)}
.cv-prefabbricati :is(.cv-prefab-system,.cv-prefab-making,.cv-prefab-families) h2{font-size:clamp(32px,3.6vw,52px);line-height:1.1;letter-spacing:-.04em;font-weight:400;margin:0}
.cv-prefab-system-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,100px);align-items:center;margin-top:30px}
.cv-prefab-diagram{margin:0;color:var(--ink)}
.cv-prefab-system-drawing{display:block;width:100%;height:auto;max-height:470px;overflow:visible}
.cv-prefab-components{margin:0}
.cv-prefab-components>div{padding:22px 0;border-bottom:1px solid var(--line)}
.cv-prefab-components>div:first-child{border-top:1px solid var(--line)}
.cv-prefab-components dt{font-size:25px;line-height:1.3;display:flex;align-items:baseline;gap:16px}
.cv-prefab-components dt>span{font-size:11px;letter-spacing:.08em;color:var(--green)}
.cv-prefab-components dd{font-size:16px;line-height:1.7;margin:10px 0 0 32px;max-width:48ch}
.cv-prefab-making{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,100px);align-items:center}
.cv-prefab-mount-photo{margin:0;max-width:510px}
.cv-prefab-mount-photo img{display:block;width:100%;height:auto}
.cv-prefab-mount-photo figcaption{margin-top:12px;font-size:12px;line-height:1.5;color:var(--green)}
.cv-prefab-making-copy>p:not(.eyebrow){font-size:17px;line-height:1.7;margin:24px 0 26px;max-width:53ch}
.cv-prefab-methods article{padding:22px 0;border-top:1px solid var(--line)}
.cv-prefab-methods h3{font-size:22px;font-weight:400;line-height:1.3;margin:0 0 10px}
.cv-prefab-methods p{font-size:16px;line-height:1.7;margin:0;max-width:49ch}
.cv-prefab-family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:35px}
.cv-prefab-family{display:block;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:20px}
.cv-prefab-family img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.cv-prefab-cover{position:relative;margin:0}
.cv-prefab-cover-note{position:absolute;left:10px;bottom:10px;padding:5px 9px;background:var(--paper);color:var(--ink);font-size:12px;line-height:1.4}
.cv-prefab-family h3{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:clamp(25px,2.5vw,36px);font-weight:400;line-height:1.2;margin:20px 0 13px;letter-spacing:-.025em}
.cv-prefab-family h3 span{font-size:32px}
.cv-prefab-family p{font-size:15px;line-height:1.6;margin:0;max-width:38ch}
.cv-prefab-family:hover{border-color:var(--ink)}
.cv-prefab-works{display:inline-block;margin-top:32px;font-size:16px}
@media(max-width:1000px){.cv-prefab-intro-grid{grid-template-columns:1fr;gap:28px}.cv-prefab-system-grid,.cv-prefab-making{gap:36px}.cv-prefab-components dt{font-size:23px}.cv-prefab-components dd{margin-left:0}.cv-prefab-making{align-items:start}.cv-prefab-family-grid{gap:20px}.cv-prefab-family h3{font-size:24px}}
@media(max-width:650px){.cv-prefabbricati .cv-prefab-intro{padding-bottom:38px}.cv-prefab-intro-copy>p:last-child{font-size:16px}.cv-prefab-system-grid,.cv-prefab-making{grid-template-columns:1fr;gap:24px}.cv-prefab-system-drawing{max-height:360px}.cv-prefab-components>div{padding:18px 0}.cv-prefab-making-copy{grid-row:1}.cv-prefab-mount-photo{max-width:420px}.cv-prefab-family-grid{grid-template-columns:1fr;gap:30px}.cv-prefab-family h3{font-size:30px}.cv-prefab-making-copy>p:not(.eyebrow){font-size:16px}.cv-prefab-system,.cv-prefab-making,.cv-prefab-families{padding-block:36px}.cv-prefab-works{font-size:15px;line-height:1.5}}


/* prefab-revision.css */
/* Source-backed prefab revision; shared page openings remain owned by site.css. */
.cv-prefabbricati .cv-prefab-intro .page-lead{max-width:66ch;margin-top:30px}
.cv-prefabbricati .cv-prefab-making{align-items:start}
.cv-prefabbricati .cv-prefab-mount-photo{position:sticky;top:140px}
.cv-modulari-personalizzabili .industrial-custom-heading{display:block;max-width:70ch}
.cv-modulari-personalizzabili .industrial-custom-heading>p:not(.eyebrow){max-width:65ch;margin-top:22px}
.cv-modulari-personalizzabili .prefab-detail-content>.cv-industrial-case-notes{width:var(--shell);margin:0 auto;padding:48px 0 64px;border-top:0}
.cv-modulari-personalizzabili .cv-industrial-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,4vw,60px)}
.cv-modulari-personalizzabili .cv-industrial-case-grid>article{min-width:0;border-top:1px solid var(--line);padding-top:24px}
.cv-modulari-personalizzabili .cv-industrial-case-grid h3{font-size:clamp(24px,2.5vw,34px);line-height:1.25;font-weight:400;margin:0 0 24px;min-height:2.5em}
.cv-modulari-personalizzabili .cv-industrial-case-grid>article>p{font-size:var(--type-body);line-height:1.65;margin:24px 0 0}
.cv-modulari-personalizzabili .cv-industrial-case-grid .photo-gallery{max-width:none}
.cv-modulari-personalizzabili .cv-industrial-case-grid .gallery-slide img{width:100%;height:auto;aspect-ratio:4/3;max-height:none;object-fit:cover}
.cv-modulari-personalizzabili .cv-industrial-case-grid .gallery-slide figcaption{font-size:13px;line-height:1.4}
.cv-modulari-personalizzabili .cv-industrial-models-heading{margin-top:52px;padding-top:32px;border-top:1px solid var(--line)}
.cv-modulari-personalizzabili .cv-industrial-models-heading h3{font-size:clamp(24px,2.5vw,34px);font-weight:400;line-height:1.25;margin:0 0 24px}
.cv-modulari-personalizzabili .cv-industrial-models-heading p{font-size:16px;line-height:1.65;max-width:75ch;margin:0}
.cv-modulari-personalizzabili .cv-industrial-model-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:28px;align-items:start}
.cv-modulari-personalizzabili .cv-industrial-model-compact{grid-template-columns:1fr;gap:22px;align-items:start;padding-block:24px}
.cv-modulari-personalizzabili .cv-industrial-model-compact :is(.industrial-model-photo,.cv-edi-rendering){margin:0;min-width:0}
.cv-modulari-personalizzabili .cv-industrial-model-compact :is(.industrial-model-photo,.cv-edi-rendering) img{display:block;width:100%;height:260px;aspect-ratio:auto;object-fit:contain}
.cv-modulari-personalizzabili .cv-industrial-model-compact .cv-edi-rendering a{display:block}
.cv-modulari-personalizzabili .cv-industrial-model-compact :is(.industrial-model-photo>span,.cv-edi-rendering figcaption){font-size:13px;line-height:1.4;margin:12px 0 0;padding:0;text-align:left}
.cv-modulari-personalizzabili .cv-industrial-model-compact h3{font-size:28px;margin-bottom:16px}
.cv-modulari-personalizzabili .cv-industrial-model-compact .industrial-model-copy>.eyebrow{font-size:12px;line-height:1.4}
.cv-modulari-personalizzabili .cv-industrial-model-compact .industrial-model-copy>p:not(.eyebrow){font-size:16px;max-width:none;margin-bottom:20px}
.cv-modulari-personalizzabili .cv-industrial-model-compact .industrial-model-dimensions{padding-block:16px;gap:10px}
.cv-modulari-personalizzabili .cv-industrial-model-compact .industrial-model-dimensions dt{font-size:12px}
.cv-modulari-personalizzabili .cv-industrial-model-compact .industrial-model-dimensions dd{font-size:22px}
.cv-modulari-personalizzabili .cv-industrial-model-compact .industrial-model-dimensions dd span{font-size:12px}
.cv-modulari-personalizzabili .cv-other-cabins-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 26px;align-items:start}
.cv-modulari-personalizzabili .cv-other-cabins-grid img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
@media(max-width:1000px){.cv-modulari-personalizzabili .cv-other-cabins-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.cv-modulari-personalizzabili .cv-other-cabins-grid{grid-template-columns:1fr}}
@media(max-width:1000px){.cv-prefabbricati .cv-prefab-mount-photo{position:static}}
@media(max-width:700px){
 .cv-modulari-personalizzabili .prefab-detail-content>.cv-industrial-case-notes{padding:30px 0 44px}
 .cv-modulari-personalizzabili .cv-industrial-case-grid{grid-template-columns:1fr;gap:40px}
 .cv-modulari-personalizzabili .cv-industrial-case-grid h3{min-height:0;font-size:26px}
 .cv-modulari-personalizzabili .cv-industrial-model-grid{grid-template-columns:1fr;gap:14px}
 .cv-modulari-personalizzabili .cv-industrial-models-heading{margin-top:40px}
}
/* Commercial workshop: the three selected photographs share one desktop row. */
.cv-site .prefab-commercial .cv-workshop-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 26px}
@media(max-width:600px){.cv-site .prefab-commercial .cv-workshop-photo-grid{grid-template-columns:1fr;gap:28px}}


/* family-revision.css */
/* Authenticated photographs and technical examples, using the existing palette. */
.cv-site .cv-family-section>.prefab-section-heading{display:block;max-width:940px;margin-bottom:28px}
.cv-site .cv-family-section>.prefab-section-heading>.eyebrow{display:block}
.cv-site .cv-family-section>.prefab-section-heading>h2{margin:0;font-size:clamp(30px,3.6vw,54px)}
.cv-site .cv-family-section>.prefab-section-heading>p:not(.eyebrow){margin:18px 0 0;max-width:70ch;font-size:var(--type-body);line-height:1.65}
.cv-family-figure{margin:0;min-width:0}
.cv-family-figure>a{display:block}
.cv-site .cv-family-figure img{display:block;width:100%;height:auto;max-height:none}
.cv-family-figure figcaption{font-size:14px;line-height:1.4;margin-top:12px}
.cv-site .cv-family-album{max-width:1000px;margin:0}
.cv-site .cv-family-album .gallery-slide img{width:100%;height:520px;object-fit:contain;background:var(--paper)}
.cv-site .cv-workshop-album{max-width:670px}
.cv-site .cv-workshop-album .gallery-slide img{height:540px}
.cv-module-examples{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:32px}
.cv-module-example{border-top:1px solid var(--line);padding-top:22px;min-width:0}
.cv-module-example h3{font-size:28px;line-height:1.15;margin:0 0 10px}
.cv-module-example h4{font-size:20px;font-weight:500;margin:22px 0 12px}
.cv-module-example p{font-size:16px;line-height:1.65;margin:0}
.cv-module-example .cv-module-height{font-size:15px;margin-bottom:20px}
.cv-site .cv-module-plan img{width:100%;height:210px;object-fit:contain;background:#fff}
.cv-module-plan figcaption{font-size:12px}
.cv-commercial-renders{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}
.cv-site .cv-commercial-renders img{height:auto;aspect-ratio:2/1;object-fit:cover;object-position:center}
.cv-site .prefab-feature .cv-commercial-video{display:block;aspect-ratio:16/9;width:100%;height:auto;max-height:none;margin:0;object-fit:cover}
.cv-residential-triptych{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;align-items:start}
.cv-residential-triptych>figure:first-child{grid-column:1/-1}
.cv-site .cv-residential-triptych img{height:auto;aspect-ratio:4/3;object-fit:cover;object-position:center}
.cv-site .cv-residential-triptych>figure:first-child img{aspect-ratio:auto;object-fit:contain}
.cv-family-photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 26px}
.cv-site .cv-family-photo-grid img{aspect-ratio:4/3;object-fit:cover;object-position:center}
.cv-family-photo-grid:has(>figure:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))}
.cv-residential-project{display:grid;grid-template-columns:1.5fr 1fr;gap:36px;margin-top:32px;border-top:1px solid var(--line);padding-top:24px}
.cv-residential-project p{margin:0;font-size:17px;line-height:1.65;max-width:68ch}
.cv-residential-project strong{font-weight:500;font-size:15px}
.cv-residential-technical{display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:start}
.cv-site .cv-residential-technical img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.cv-residential-layers article{padding:24px 0;border-top:1px solid var(--line)}
.cv-residential-layers article:first-child{padding-top:0;border:0}
.cv-residential-layers h3{font-size:25px;font-weight:400;line-height:1.25;margin:0 0 14px}
.cv-residential-layers p{font-size:17px;line-height:1.65;margin:0}
@media(max-width:1000px){
 .cv-module-examples{gap:20px}.cv-module-example h3{font-size:24px}.cv-site .cv-module-plan img{height:170px}
 .cv-commercial-renders,.cv-residential-triptych{gap:20px}.cv-residential-technical{gap:30px}.cv-residential-layers p{font-size:16px}
 .cv-site .cv-family-album .gallery-slide img{height:min(520px,60vw)}
 .cv-site .cv-workshop-album .gallery-slide img{height:510px}
}
@media(max-width:600px){
 .cv-family-photo-grid,.cv-family-photo-grid:has(>figure:nth-child(3):last-child),.cv-module-examples,.cv-commercial-renders,.cv-residential-triptych,.cv-residential-project,.cv-residential-technical{grid-template-columns:1fr;gap:28px}
 .cv-site .cv-family-section>.prefab-section-heading>h2{font-size:32px}.cv-site .cv-family-section>.prefab-section-heading>p:not(.eyebrow){font-size:16px}
 .cv-site .cv-module-plan img{height:auto;max-height:300px}.cv-module-example h3{font-size:28px}
 .cv-site .cv-family-album .gallery-slide img{height:auto;aspect-ratio:16/10;object-fit:contain}
 .cv-site .cv-workshop-album .gallery-slide img{height:auto;aspect-ratio:3/4}
 .cv-site .cv-residential-triptych img{height:auto;aspect-ratio:4/3}.cv-residential-project{margin-top:28px}
 .cv-residential-layers h3{font-size:24px}.cv-residential-technical{margin-top:24px}
}


/* sector-revision.css */
/* The opening photo follows the road-page title; no competing top alignment. */
.cv-site .cv-road-opening .page-hero-image{align-self:end;margin-top:clamp(2rem,7vw,7rem)}
.cv-site .cv-road-subtitle{font-size:clamp(1.6rem,2.5vw,2.6rem);line-height:1.2;margin-top:1.5rem}
.cv-site .cv-material-facts>p:first-child{margin-bottom:.6rem}
.cv-site .cv-material-facts ul{margin-top:0}
@media(max-width:1000px){.cv-site .cv-road-opening .page-hero-image{margin-top:0}}

/* Align the portrait with the section edge, preserving its full framing. */
.cv-carpenteria .cv-bormio-hero{align-self:end}
.cv-carpenteria .cv-bormio-hero img{height:clamp(320px,28vw,400px);aspect-ratio:3/2;object-fit:cover;object-position:center 85%}
@media(max-width:1000px){.cv-carpenteria .cv-bormio-hero img{height:auto;max-height:400px}}
.cv-site .cv-home-carp img{object-position:center 78%}
@media(min-width:1001px){.cv-depurazione .water-hero-art{position:relative;top:32px}}

/* Basin, shelter and plant connections share one projection and a readable key. */
.cv-depurazione .wi-figure{margin:0;opacity:1;min-width:0}
.wi-drawing{overflow:visible}
.wi-drawing .wi-top{fill:var(--paper,#f0f0e8)}
.wi-drawing .wi-face{fill:var(--paper,#f0f0e8)}
.wi-drawing .wi-side{fill:var(--paper,#f0f0e8)}
.wi-drawing .wi-water{fill:currentColor;fill-opacity:.1;stroke-opacity:.35}
.wi-drawing :is(.wi-water-line,.wi-joint,.wi-roof-seam){stroke-width:.8;opacity:.5}
.wi-drawing :is(.wi-rim,.wi-column,.wi-beam){stroke-width:2.3}
.wi-drawing .wi-bracing{stroke-width:1;opacity:.55}
.wi-drawing .wi-ground{stroke-width:1;opacity:.17}
.wi-drawing .wi-reference{opacity:.13}
.wi-drawing .wi-reference *{fill:none}
.wi-drawing .wi-pipe{stroke-width:3;fill:none}
.wi-drawing .wi-connection .wi-pipe{stroke-dasharray:1}
.cv-depurazione .water-capabilities .water-graphic{max-width:360px;height:185px;opacity:.9}
.wc-drawing .wc-surface{fill:var(--paper,#f0f0e8)}
.wc-drawing .wc-side{fill:var(--paper,#f0f0e8)}
.wc-drawing .wc-water{fill:currentColor;fill-opacity:.09;stroke-opacity:.4}
.wc-drawing .wc-guide{stroke-dasharray:3 6;stroke-width:.9;opacity:.2}
.wc-drawing .wc-detail{stroke-width:.85;opacity:.55}
.wc-drawing .wc-structural{stroke-width:1.7}
.wc-drawing .wc-pipe{stroke-width:3.2}
@media(max-width:600px){.cv-depurazione .water-capabilities .water-graphic{width:min(100%,300px);height:170px}}
.cv-depurazione .wi-figure figcaption{font-size:13px;line-height:1.5;margin:12px 0 18px;opacity:.65}
.wi-key{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:14px}
.wi-key li{border-top:1px solid var(--line);padding-top:10px;font-size:13px;line-height:1.4}
.wi-key span{display:block;font-size:11px;letter-spacing:.08em;margin-bottom:5px;opacity:.6}
@media(max-width:600px){.wi-key{gap:10px}.wi-key li{font-size:11px}.cv-depurazione .wi-figure figcaption{font-size:11px}}


/* common-revision.css */
/* One opening, album and final-link convention across all business sectors. */
.cv-site .cv-unified-opening .page-hero-copy h1{font-size:clamp(38px,4.4vw,68px);max-width:22ch;line-height:1.07}
.cv-site .cv-unified-opening .page-hero-copy>.eyebrow{display:block}
.cv-site .cv-unified-opening .page-lead{margin-top:30px;max-width:65ch}
.cv-site .prefab-detail-content>.prefab-feature:first-child>.prefab-section-heading{display:block;max-width:72ch}
.cv-site .prefab-detail-content>.prefab-feature:first-child>.prefab-section-heading>p{margin-top:20px}
.cv-site .brand,.cv-site .brand-logo{background:transparent!important}
.cv-site .brand-logo{object-fit:contain}
.cv-site .cv-brochure-band .brochure-card{align-items:end}
.cv-site .cv-brochure-band .brochure-actions{align-items:baseline;padding-bottom:0;gap:18px 24px}
.cv-site .cv-brochure-band .brochure-actions>.text-link{margin:0}
.cv-site .cv-brochure-band .brochure-card>div:first-child>p{margin-bottom:0}
.cv-sector-works{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:42px;border-top:1px solid var(--line)}
.cv-sector-works h2{font-size:clamp(27px,3vw,40px);font-weight:400;margin:0;letter-spacing:-.035em}
.cv-sector-works a{font-size:16px}
/* Keep the company illustration inside the green contact surface. */
.cv-site .contact .contact-drawing{right:max(24px,calc((100% - var(--shell))/2 - 48px));top:32px;bottom:32px;width:40%;height:auto;transform:none}
.cv-site .contact .contact-drawing svg{display:block;width:100%;height:100%}
@media(max-width:1000px){
 .cv-site .contact{display:flex;flex-direction:column}
 .cv-site .contact .contact-inner{order:1}
 .cv-site .contact .contact-drawing{position:relative;order:2;inset:auto;width:var(--shell);max-width:500px;height:auto;aspect-ratio:640/400;margin:32px auto 0}
}
.cv-auto-gallery.cv-gallery-active .gallery-track{overflow-x:auto}
.cv-auto-gallery:not(.cv-gallery-active) .gallery-thumbs{display:none}
.cv-auto-gallery .gallery-controls{min-height:24px;justify-content:flex-end;margin-top:10px}
.cv-auto-gallery .gallery-slide>a{display:flex;min-width:0;width:100%;justify-content:center}
.cv-auto-gallery .gallery-slide img{height:auto;max-height:520px;object-fit:contain}
.cv-site .gallery-thumbs{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.cv-site .gallery-thumbs button{width:76px;height:58px;min-width:0;padding:0;flex:0 0 76px;border:1px solid transparent;background:transparent;opacity:.55;cursor:pointer;overflow:hidden}
.cv-site .gallery-thumbs button[aria-pressed=true]{opacity:1;border-color:var(--green)}
.cv-site .gallery-thumbs img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:auto;max-height:none}
.cv-home .cv-water-priority{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:22px;align-items:start;container-type:inline-size}
.cv-home .cv-water-priority .home-work-tile{grid-column:span 4;height:auto;aspect-ratio:auto;display:flex;flex-direction:column}
.cv-home .cv-water-priority .home-work-tile:nth-child(-n+2){grid-column:span 6}
.cv-home .cv-water-priority :is(.cv-home-cup,.cv-home-sos){grid-column:span 3}
.cv-home .cv-water-priority .home-work-tile>img{height:auto;aspect-ratio:3/2;width:100%;object-fit:cover}
.cv-home .cv-water-priority .home-work-caption{position:static;display:flex;background:transparent;color:var(--paper,#f1f1e9);padding:14px 0;align-items:start;opacity:1;transform:none}
.cv-home .cv-water-priority .home-work-caption>span:first-child{display:block;-webkit-line-clamp:unset;overflow:visible}
.cv-home .cv-water-priority .cv-home-sos>img{object-fit:contain}
@media(max-width:1000px){.cv-home .cv-water-priority .home-work-tile{grid-column:span 6!important}.cv-sector-works{padding-block:32px}.cv-site .cv-brochure-band .brochure-card{gap:28px}}
@media(max-width:600px){.cv-sector-works{display:block}.cv-sector-works a{display:inline-block;margin-top:22px;font-size:14px}.cv-site .cv-brochure-band .brochure-actions{align-items:flex-start}.cv-site .cv-brochure-band .brochure-actions>.text-link{margin:0}.cv-auto-gallery .gallery-slide img{max-height:380px}.cv-site .gallery-thumbs button{width:58px;height:44px;flex-basis:58px}.cv-home .cv-water-priority{gap:18px 14px}.cv-home .cv-water-priority .cv-home-water{grid-column:span 12!important}.cv-home .cv-water-priority .home-work-caption{font-size:13px}}
.cv-realizzazioni .project figcaption .cv-project-summary{font-size:14px;line-height:1.55;letter-spacing:0;text-transform:none;color:var(--ink);opacity:.85;margin:12px 0 0;font-weight:400}
.cv-realizzazioni .project-dialog .cv-project-summary{font-size:16px;line-height:1.6;max-width:70ch;margin-top:16px}


/* release.css */
/* Remove preview chrome while retaining the approved page compositions. */
.site-header{top:0}
.admin-bar .site-header{top:32px}
.cv-site:not(.home) #contenuto{padding-top:clamp(100px,10vw,130px)}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
@media(max-width:600px){.cv-site:not(.home) #contenuto{padding-top:90px}}
/* Long URLs in preserved legal text must wrap without hiding any content. */
.cv-privacy-policy #contenuto :is(p,li,a),
.cv-cookie-policy #contenuto :is(p,li,a){overflow-wrap:anywhere}


/* languages.css */
.cm-language-switcher{display:flex;align-items:center;gap:.35rem;margin-left:auto;margin-right:1rem;position:relative;z-index:4}
.cm-language-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.45rem .65rem;border:1px solid transparent;border-radius:3px;font-size:.8rem;font-weight:650;line-height:1;letter-spacing:.05em;color:var(--ink,#17352e);text-decoration:none}
.cm-language-link[aria-current]{border-color:currentColor}
.cm-language-link:hover,.cm-language-link:focus-visible{background:rgba(23,53,46,.08);outline-offset:3px}
@media(max-width:600px){.cm-language-switcher{gap:0;margin-right:.45rem}.cm-language-link{min-width:40px;padding:.4rem}.site-header .brand{max-width:calc(100% - 145px)}}


/* performance.css */
/* Improve the small step labels without changing geometry or text. */
.cv-depurazione .wi-key span{opacity:.85}

