.pva-page {
  color:var(--pv-dark);
  font-family:Sora,sans-serif
}

.pva-page * {
  box-sizing:border-box
}

.pva-page .pv-shell {
  max-width:1360px;
  margin-inline:auto;
  padding-inline:clamp(24px,5vw,64px);
  width:100%
}

.pva-back {
  display:block;
  font-size:12px;
  line-height:1.8;
  letter-spacing:.05em;
  color:#ddd;
  text-decoration:none;
  margin-bottom:28px
}

.pva-page .pva-hero {
  background:radial-gradient(ellipse at 100% 0,color-mix(in srgb, var(--pv-accent) 32%, transparent),transparent 65%),var(--pv-dark);
  padding-top:170px
}

.pva-actions {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:24px
}

.pva-secondary {
  color:white;
  text-underline-offset:6px;
  font-size:14px
}

.pva-index {
  background:white;
  border-bottom:1px solid #dde0e2
}

.pva-index>.pv-shell {
  display:flex;
  flex-wrap:wrap;
  gap:16px 30px;
  padding-block:22px
}

.pva-index a {
  font-size:13px;
  color:var(--pv-dark);
  text-decoration:none
}

.pva-index a:hover {
  color:var(--pv-accent-hover)
}

.pva-section {
  padding-block:80px;
  scroll-margin-top:110px
}

.pva-page h2 {
  font-size:clamp(28px,3vw,42px);
  font-weight:500;
  line-height:1.25;
  letter-spacing:-.035em;
  margin:0 0 28px;
  max-width:900px
}

.pva-page h3 {
  font-size:23px;
  font-weight:500;
  line-height:1.4;
  letter-spacing:-.025em;
  margin:0 0 16px
}

.pva-page p {
  font-size:16px;
  line-height:1.85;
  margin:0 0 22px
}

.pva-page .pva-kicker {
  font-size:11px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.11em;
  margin-bottom:20px
}

.pva-intro,.pva-section-head {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px
}

.pva-needs ul {
  margin:0;
  padding:0;
  list-style:none
}

.pva-needs li {
  padding:20px 0 20px 30px;
  border-bottom:1px solid #d4dadd;
  font-size:17px;
  line-height:1.65;
  position:relative
}

.pva-needs li:before {
  content:'↗';
  color:var(--pv-accent);
  position:absolute;
  left:0
}

.pva-soft {
  background:#f3f5f6
}

.pva-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
  margin-top:40px
}

.pva-card {
  background:white;
  border:1px solid #d9dfe2;
  padding:36px
}

.pva-number {
  display:block;
  color:var(--pv-accent-hover);
  font-size:13px;
  margin-bottom:30px
}

.pva-card .pva-output {
  padding-top:22px;
  border-top:1px solid #d9dfe2;
  font-size:14px;
  margin-bottom:0
}

.pva-output strong {
  display:block;
  font-size:11px;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:8px
}

.pva-steps {
  list-style:none;
  counter-reset:step;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:28px;
  margin:40px 0 0;
  padding:0
}

.pva-steps li {
  border-top:1px solid #bcc4c9;
  padding-top:22px;
  counter-increment:step
}

.pva-steps li:before {
  content:'0' counter(step);
  display:block;
  font-size:12px;
  color:var(--pv-accent-hover);
  margin-bottom:22px
}

.pva-steps h3 {
  font-size:19px
}

.pva-steps p {
  font-size:14px
}

.pva-measure {
  background:var(--pv-dark);
  color:white;
  padding:40px;
  margin-top:38px;
  border-left:4px solid var(--pv-accent)
}

.pva-measure p:last-child {
  margin-bottom:0;
  max-width:960px;
  color:#e0e2e3
}

.pva-cases {
  gap:40px
}

.pva-case>a {
  display:block;
  text-decoration:none;
  color:inherit
}

.pva-case img {
  width:100%;
  height:auto;
  aspect-ratio:16/10;
  object-fit:contain;
  background:#fff;
  display:block;
  border:1px solid #d9dfe2;
  margin-bottom:24px
}

.pva-case p {
  font-size:15px
}

.pva-link {
  color:inherit;
  text-decoration:underline;
  text-underline-offset:5px;
  font-size:14px;
  line-height:1.6
}

.pva-link:hover {
  color:var(--pv-accent-hover)
}

.pva-faq-grid {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:80px
}

.pva-faq details {
  border-bottom:1px solid #cbd1d5
}

.pva-faq summary {
  padding:24px 36px 24px 0;
  font-size:18px;
  line-height:1.6;
  cursor:pointer;
  position:relative;
  list-style:none
}

.pva-faq summary:after {
  content:'+';
  position:absolute;
  right:4px;
  color:var(--pv-accent-hover)
}

.pva-faq details[open] summary:after {
  content:'−'
}

.pva-faq summary::-webkit-details-marker {
  display:none
}

.pva-faq details p {
  font-size:15px;
  padding-right:24px
}

.pva-related {
  border-top:1px solid #d9dfe2
}

.pva-related-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:32px
}

.pva-related h3 a {
  font-size:19px;
  text-decoration:none
}

.pva-related article {
  border-top:1px solid #bcc4c9;
  padding-top:24px
}

.pva-related p {
  font-size:14px
}

.pva-page .pvo-ending {
  background:var(--pv-dark);
  color:white
}

.pva-page .pvo-ending p {
  max-width:760px;
  color:#e0e2e3
}

.pva-example {
  font-size:12px!important;
  color:#59616a
}

.pva-page a:focus-visible,.pva-page summary:focus-visible {
  outline:2px solid var(--pv-accent);
  outline-offset:6px
}

.pva-hub-link {
  margin-block:28px!important
}

.pva-contact-context {
  padding:20px 24px;
  border-left:3px solid var(--pv-accent);
  background:#f3f5f6;
  line-height:1.7
}

@media(max-width:900px) {
  .pva-steps {
    grid-template-columns:1fr 1fr
  }

  .pva-intro,.pva-section-head,.pva-faq-grid {
    gap:32px
  }

  .pva-related-grid {
    grid-template-columns:1fr
  }

  .pva-section {
    padding-block:58px
  }

  .pva-card {
    padding:28px
  }

}

@media(max-width:640px) {
  .pva-page .pva-hero {
    padding-top:140px
  }

  .pva-intro,.pva-section-head,.pva-grid,.pva-faq-grid {
    grid-template-columns:1fr
  }

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

  .pva-steps h3 {
    font-size:17px
  }

  .pva-index>.pv-shell {
    gap:14px 22px;
    padding-block:18px
  }

  .pva-index a {
    font-size:12px
  }

  .pva-measure {
    padding:28px 24px
  }

  .pva-card {
    padding:26px
  }

  .pva-page h3 {
    font-size:21px
  }

  .pva-page p {
    font-size:15px
  }

  .pva-section {
    scroll-margin-top:90px
  }

  .pva-back {
    font-size:10px
  }

  .pva-faq summary {
    font-size:17px
  }

  .pva-actions {
    align-items:flex-start;
    flex-direction:column
  }

}

/* Short hero: unchanged area names, one paragraph and one action. */
/* Concise detail pages, revision 22 October. */ .pva-page .pva-section {
  padding-block:58px
}

.pva-page #interventi {
  background:#fff
}

.pva-page #esempi {
  background:#f3f5f6
}

.pva-page .pva-card {
  padding:28px
}

.pva-page .pva-card p:last-child {
  margin-bottom:0
}

.pva-page .pva-grid {
  margin-top:28px
}

.pva-page .pva-grid:not(.pva-cases)>.pva-card:last-child:nth-child(odd) {
  grid-column:1/-1
}

.pva-page .pva-measure {
  padding:24px 28px;
  margin-top:28px
}

.pva-page .pva-measure h3 {
  font-size:17px;
  margin-bottom:8px
}

.pva-page .pva-measure p {
  font-size:14px
}

.pva-related-compact {
  padding-block:28px;
  border-top:1px solid #d9dfe2
}

.pva-related-compact>.pv-shell {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:16px 28px
}

.pva-page .pva-related-compact p {
  margin:0;
  font-size:12px;
  color:#59616a
}

.pva-related-compact a {
  font-size:12px
}

.pva-page .pva-example {
  margin-top:16px
}

@media(max-width:640px) {
  .pva-page .pva-section {
    padding-block:42px
  }

  .pva-page .pva-card {
    padding:24px
  }

  .pva-page .pva-measure {
    padding:22px
  }

  .pva-related-compact>.pv-shell {
    align-items:flex-start;
    flex-direction:column
  }

}

/* Approved service structure: approach, method, scope, measurement, projects, FAQ. */ .pva-approach {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:70px
}

.pva-page .pva-approach h2 {
  font-size:14px;
  letter-spacing:.07em;
  text-transform:uppercase;
  margin-bottom:22px
}

.pva-page .pva-approach h3 {
  font-size:clamp(26px,3vw,38px);
  line-height:1.3;
  max-width:480px
}

.pva-approach-copy p:last-child {
  margin-bottom:0
}

.pva-method {
  background:#f3f5f6
}

.pva-method-grid {
  list-style:none;
  padding:0;
  margin:32px 0 0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:36px
}

.pva-method-grid li {
  border-top:1px solid #bec6cb;
  padding-top:22px
}

.pva-method-grid li>span {
  display:block;
  font-size:12px;
  color:var(--pv-accent-hover);
  margin-bottom:22px
}

.pva-method-grid h3 {
  font-size:21px
}

.pva-method-grid p {
  font-size:15px;
  margin-bottom:0
}

.pva-measure {
  scroll-margin-top:110px
}

.pva-projects-intro {
  max-width:740px
}

@media(max-width:760px) {
  .pva-approach {
    grid-template-columns:1fr;
    gap:18px
  }

  .pva-method-grid {
    grid-template-columns:1fr;
    gap:26px
  }

  .pva-page .pva-approach h3 {
    font-size:28px
  }

  .pva-measure {
    scroll-margin-top:90px
  }

}

/* Full-width detail pages also when WordPress assigns the default page template. */ body.pva-detail .pv-main.pv-page {
  margin-block:0;
  padding:0
}

body.pva-detail .pv-page-inner {
  max-width:none;
  width:100%;
  padding:0;
  margin:0
}

body.pva-detail .pv-page .wp-block-post-content {
  max-width:none;
  width:100%;
  margin:0;
  padding:0
}

body.pva-detail .wp-block-post-content>.pva-page {
  max-width:none;
  width:100%;
  margin:0
}
