/* =========================================================
   RENIX — PAGINA FOTOVOLTAICO
========================================================= */

.pv-page,
.pv-page * {
  box-sizing: border-box;
}


.pv-page {
  width: 100%;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  color: #344041;
}


.pv-container {
  width: min(100% - 80px, 1280px);
  margin-inline: auto;
}


/* =========================================================
   HERO
========================================================= */

.pv-hero {
  background: #536364;

  padding:
    180px
    0
    92px;

  color: #ffffff;
}


.pv-hero__inner {
  width: min(100% - 120px, 1280px);

  margin-inline: auto;

  display: grid;

  grid-template-columns:
    0.9fr
    1.1fr;

  gap: 90px;

  align-items: center;
}


.pv-breadcrumb {
  margin:
    0
    0
    58px;

  color: #cde4c5;

  font-size: 18px;
  line-height: 1;

  font-weight: 700;
}


.pv-hero h1 {
  margin:
    0
    0
    28px;

  font-size: 48px;
  line-height: 1;

  font-weight: 800;

  color: #ffffff;
}


.pv-hero__description {
  max-width: 480px;

  margin: 0;

  font-size: 22px;
  line-height: 1.38;

  color: rgba(255, 255, 255, 0.94);
}


.pv-hero__media {
  width: 100%;

  overflow: hidden;

  border-radius: 10px;
}


.pv-hero__media img {
  width: 100%;

  aspect-ratio: 1.52 / 1;

  object-fit: cover;
}


/* =========================================================
   TITOLI SEZIONI
========================================================= */

.pv-section-title {
  width: fit-content;

  margin:
    0
    auto
    70px;

  text-align: center;
}


.pv-section-title h2 {
  margin: 0;

  padding-bottom: 8px;

  font-size: 34px;
  line-height: 1;

  font-weight: 700;

  border-bottom:
    4px solid currentColor;
}


.pv-section-title--light {
  color: #ffffff;
}


/* =========================================================
   PIÙ NEL DETTAGLIO
========================================================= */

.pv-details {
  padding:
    72px
    0
    105px;

  background: #ffffff;
}


.pv-details__grid {
  max-width: 1180px;

  margin-inline: auto;

  display: grid;

  grid-template-columns:
    repeat(6, 1fr);

  gap: 38px;
}


.pv-detail-card {
  min-height: 205px;

  padding:
    30px
    28px;

  background: #d2e8cc;

  border-radius: 10px;

  box-shadow:
    0 4px 9px
    rgba(52, 64, 65, 0.14);
}


/* prime 3 */

.pv-detail-card:nth-child(1) {
  grid-column: 1 / span 2;
}

.pv-detail-card:nth-child(2) {
  grid-column: 3 / span 2;
}

.pv-detail-card:nth-child(3) {
  grid-column: 5 / span 2;
}


/* ultime 2 centrate */

.pv-detail-card:nth-child(4) {
  grid-column: 2 / span 2;
}

.pv-detail-card:nth-child(5) {
  grid-column: 4 / span 2;
}


.pv-detail-card__heading {
  min-height: 58px;

  display: flex;

  align-items: center;

  gap: 17px;

  margin-bottom: 26px;
}


.pv-detail-card__heading img {
  width: 42px;
  height: 42px;

  object-fit: contain;
}


.pv-detail-card h3 {
  margin: 0;

  font-size: 22px;
  line-height: 1.05;

  font-weight: 700;
}


.pv-detail-card p {
  margin: 0;

  font-size: 14px;
  line-height: 1.5;

  color: #536163;
}


/* =========================================================
   LAVORI REALIZZATI
========================================================= */

.pv-projects {
  padding:
    72px
    0
    90px;

  background: #536364;

  overflow: hidden;
}


.pv-projects .pv-section-title {
  margin-bottom: 58px;
}


/* =========================================================
   GALLERIA ORIZZONTALE
========================================================= */

.pv-projects__grid {
  width: 100%;

  display: flex;
  align-items: stretch;

  gap: 24px;

  overflow-x: auto;
  overflow-y: hidden;

  padding:
    0
    0
    16px;

  scroll-snap-type: x mandatory;

  overscroll-behavior-x: contain;

  -webkit-overflow-scrolling: touch;

  scrollbar-width: none;
}


.pv-projects__grid::-webkit-scrollbar {
  display: none;
}


.pv-project {
  flex:
    0
    0
    55%;

  width: 55%;
  min-width: 55%;

  margin: 0;
  padding: 0;

  background: transparent;

  border-radius: 0;

  overflow: hidden;

  scroll-snap-align: start;
  scroll-snap-stop: always;
}


.pv-project img {
  display: block;

  width: 100%;
  height: auto;

  aspect-ratio: 16 / 9;

  object-fit: cover;
  object-position: center;

  border-radius: 0;
}


/* =========================================================
   PERCHÉ SCEGLIERE IL FOTOVOLTAICO
========================================================= */

.pv-benefits {
  padding:
    58px
    0;

  background: #344041;

  color: #ffffff;
}


/*
  DESKTOP:
  TESTO | VANTAGGI | ESPLORA
*/

.pv-benefits__inner {
  display: grid;

  grid-template-columns:
    minmax(360px, 0.95fr)
    minmax(500px, 1.2fr)
    170px;

  gap: 42px;

  align-items: center;
}


.pv-benefits__copy {
  width: 100%;
}


.pv-eyebrow {
  display: block;

  margin-bottom: 16px;

  color: #91c3a2;

  font-size: 15px;
  line-height: 1.2;

  font-weight: 700;
}


.pv-benefits h2 {
  margin:
    0
    0
    20px;

  font-size: 32px;
  line-height: 1.08;

  color: #ffffff;
}


.pv-benefits__copy p {
  max-width: 440px;

  margin: 0;

  font-size: 16px;
  line-height: 1.45;

  color:
    rgba(255, 255, 255, 0.85);
}


/* =========================================================
   LISTA VANTAGGI
========================================================= */

.pv-benefits__list {
  position: relative;

  display: grid;

  grid-template-columns:
    repeat(2, minmax(0, 1fr));

  column-gap: 48px;
  row-gap: 32px;

  padding:
    8px
    44px;

  align-items: center;
}


/* linee verticali Figma */

.pv-benefits__list::before,
.pv-benefits__list::after {
  content: "";

  position: absolute;

  top: 50%;

  width: 3px;
  height: 128px;

  background: #cde4c5;

  transform:
    translateY(-50%);
}


.pv-benefits__list::before {
  left: 0;
}


.pv-benefits__list::after {
  right: 0;
}


.pv-benefit {
  display: flex;

  align-items: center;

  gap: 14px;
}


.pv-benefit__icon {
  width: 32px;
  height: 32px;

  flex:
    0
    0
    32px;

  display: inline-flex;

  align-items: center;
  justify-content: center;

  border:
    2px solid
    #91c3a2;

  border-radius: 50%;

  color: #91c3a2;

  font-weight: 700;
}


.pv-benefit p {
  margin: 0;

  font-size: 14px;
  line-height: 1.25;

  color: #ffffff;
}


/* =========================================================
   CTA — ESPLORA I VANTAGGI
========================================================= */

.pv-benefits__explore {
  appearance: none;

  width: 100%;

  margin: 0;

  padding:
    14px
    0;

  border: 0;

  background: transparent;

  display: flex;

  align-items: center;
  justify-content: center;

  gap: 18px;

  color: #91c3a2;

  font-family:
    "Montserrat",
    Arial,
    sans-serif;

  font-size: 17px;
  line-height: 1.1;

  font-weight: 700;

  text-align: left;

  cursor: pointer;

  transition:
    color 0.25s ease;
}


.pv-benefits__explore-arrow {
  display: inline-flex;

  align-items: center;
  justify-content: center;

  font-size: 27px;
  line-height: 1;

  font-weight: 400;

  transition:
    transform
    0.25s ease;
}


@media (hover: hover) and (pointer: fine) {

  .pv-benefits__explore:hover {
    color: #cde4c5;
  }


  .pv-benefits__explore:hover
  .pv-benefits__explore-arrow {
    transform:
      translateX(7px);
  }

}


/* =========================================================
   PARTNERSHIP LUMYRA
   PER ORA NASCOSTA
========================================================= */

.pv-partner {
  display: none !important;

  padding:
    72px
    0
    100px;

  background: #ffffff;
}


.pv-partner__logos {
  display: flex;

  align-items: center;

  gap: 24px;

  margin-bottom: 58px;
}


.pv-partner__renix {
  width: 270px;
}


.pv-partner__divider {
  width: 3px;
  height: 70px;

  background: #91c3a2;
}


.pv-partner__lumyra {
  width: 270px;
}


.pv-partner__layout {
  display: grid;

  grid-template-columns:
    1.4fr
    0.6fr;

  gap: 80px;

  align-items: center;
}


.pv-partner__eyebrow {
  display: inline-block;

  margin-bottom: 38px;

  padding-bottom: 6px;

  border-bottom:
    3px solid
    #91c3a2;

  color: #91c3a2;

  font-size: 20px;

  font-weight: 700;
}


.pv-partner h2 {
  margin:
    0
    0
    30px;

  font-size: 36px;
  line-height: 1.18;

  color: #536163;
}


.pv-partner__copy > p {
  max-width: 750px;

  margin:
    0
    0
    38px;

  font-size: 17px;
  line-height: 1.55;

  color: #667374;
}


.pv-partner__button {
  width: 260px;
  height: 52px;

  padding:
    0
    18px;

  display: inline-flex;

  align-items: center;
  justify-content: space-between;

  background: #344041;

  color: #ffffff;

  border-radius: 8px;

  font-size: 14px;
  font-weight: 600;
}


.pv-partner__media {
  overflow: hidden;

  border-radius: 10px;
}


.pv-partner__media img {
  width: 100%;

  aspect-ratio: 0.72 / 1;

  object-fit: cover;
}


/* =========================================================
   =========================================================
   MOBILE
   =========================================================
========================================================= */

@media (max-width: 768px) {


  /* =======================================================
     GENERALI
  ======================================================= */

  .pv-page {
    width: 100%;

    overflow-x: hidden;
  }


  .pv-container {
    width: 100%;
    max-width: none;

    margin: 0;

    padding-left: 20px;
    padding-right: 20px;
  }


  /* =======================================================
     HERO
  ======================================================= */

  .pv-hero {
    padding:
      112px
      20px
      54px;

    background: #536364;
  }


  .pv-hero__inner {
    width: 100%;
    max-width: none;

    margin: 0;

    display: flex;

    flex-direction: column;

    gap: 34px;

    align-items: stretch;
  }


  .pv-hero__copy {
    width: 100%;
  }


  .pv-breadcrumb {
    margin:
      0
      0
      30px;

    font-size: 14px;
    line-height: 1.2;

    font-weight: 700;
  }


  .pv-hero h1 {
    margin:
      0
      0
      18px;

    font-size: 34px;
    line-height: 1;

    letter-spacing:
      -0.03em;
  }


  .pv-hero__description {
    width: 100%;
    max-width: 340px;

    margin: 0;

    font-size: 17px;
    line-height: 1.4;
  }


  .pv-hero__media {
    width: 100%;

    margin: 0;

    border-radius: 8px;

    overflow: hidden;
  }


  .pv-hero__media img {
    display: block;

    width: 100%;

    aspect-ratio:
      16 / 10;

    object-fit: cover;
    object-position: center;
  }


  /* =======================================================
     TITOLI
  ======================================================= */

  .pv-section-title {
    width: fit-content;

    margin:
      0
      auto
      40px;
  }


  .pv-section-title h2 {
    padding-bottom: 6px;

    font-size: 26px;
    line-height: 1.05;

    border-bottom-width:
      3px;
  }


  /* =======================================================
     PIÙ NEL DETTAGLIO
  ======================================================= */

  .pv-details {
    padding:
      52px
      0
      62px;
  }


  .pv-details__grid {
    width: 100%;
    max-width: none;

    margin: 0;

    display: grid;

    grid-template-columns:
      1fr;

    gap: 14px;
  }


  .pv-detail-card,
  .pv-detail-card:nth-child(1),
  .pv-detail-card:nth-child(2),
  .pv-detail-card:nth-child(3),
  .pv-detail-card:nth-child(4),
  .pv-detail-card:nth-child(5) {
    grid-column: auto;

    width: 100%;
    min-height: 0;

    padding:
      22px
      20px;

    border-radius: 9px;
  }


  .pv-detail-card__heading {
    min-height: 0;

    margin-bottom: 16px;

    gap: 14px;
  }


  .pv-detail-card__heading img {
    width: 34px;
    height: 34px;

    flex:
      0
      0
      34px;
  }


  .pv-detail-card h3 {
    font-size: 18px;
    line-height: 1.1;
  }


  .pv-detail-card p {
    font-size: 13px;
    line-height: 1.5;
  }


  /* =======================================================
     LAVORI REALIZZATI
  ======================================================= */

  .pv-projects {
    padding:
      52px
      0
      60px;

    overflow: hidden;
  }


  /*
    A sinistra mantiene il margine,
    a destra lascia continuare lo slider.
  */

  .pv-projects .pv-container {
    width: 100%;
    max-width: none;

    padding-left: 20px;
    padding-right: 0;
  }


  .pv-projects .pv-section-title {
    margin:
      0
      auto
      38px;

    transform:
      translateX(-10px);
  }


  .pv-projects__grid {
    width: 100%;

    display: flex;

    align-items: stretch;

    gap: 14px;

    overflow-x: auto;
    overflow-y: hidden;

    padding:
      0
      20px
      10px
      0;

    scroll-snap-type:
      x mandatory;

    overscroll-behavior-x:
      contain;

    -webkit-overflow-scrolling:
      touch;

    scrollbar-width:
      none;
  }


  .pv-projects__grid::-webkit-scrollbar {
    display: none;
  }


  .pv-project {
    flex:
      0
      0
      74%;

    width: 74%;
    min-width: 74%;

    margin: 0;
    padding: 0;

    overflow: hidden;

    background: transparent;

    border-radius: 0;

    scroll-snap-align:
      start;

    scroll-snap-stop:
      always;
  }


  .pv-project img {
    display: block;

    width: 100%;
    height: auto;

    aspect-ratio:
      16 / 10;

    object-fit: cover;
    object-position: center;

    border-radius: 0;
  }


  /* =======================================================
     BENEFICI
  ======================================================= */

  .pv-benefits {
    padding:
      48px
      0
      54px;
  }


  /*
    Sul mobile NON utilizziamo le 3 colonne desktop.
  */

  .pv-benefits__inner {
    display: flex;

    flex-direction: column;

    align-items: stretch;

    gap: 36px;
  }


  .pv-benefits__copy {
    width: 100%;
  }


  .pv-eyebrow {
    margin-bottom: 12px;

    font-size: 12px;
    line-height: 1.25;
  }


  .pv-benefits h2 {
    margin:
      0
      0
      16px;

    font-size: 27px;
    line-height: 1.08;
  }


  .pv-benefits__copy p {
    max-width: 330px;

    font-size: 14px;
    line-height: 1.5;
  }


  /* =======================================================
     BENEFICI — 2 X 2 MOBILE
  ======================================================= */

  .pv-benefits__list {
    width: 100%;

    position: relative;

    display: grid;

    grid-template-columns:
      repeat(2, minmax(0, 1fr));

    column-gap: 18px;
    row-gap: 24px;

    padding: 0;

    align-items: start;
  }


  /*
    Le due linee verticali sono desktop-only.
  */

  .pv-benefits__list::before,
  .pv-benefits__list::after {
    display: none;
  }


  .pv-benefit {
    display: flex;

    align-items: flex-start;

    gap: 10px;
  }


  .pv-benefit__icon {
    width: 28px;
    height: 28px;

    flex:
      0
      0
      28px;

    font-size: 13px;
  }


  .pv-benefit p {
    font-size: 12px;
    line-height: 1.25;
  }


  /* =======================================================
     CTA ESPLORA — MOBILE
  ======================================================= */

  .pv-benefits__explore {
    width: fit-content;

    align-self: flex-start;

    margin: 0;

    padding: 0;

    justify-content: flex-start;

    gap: 12px;

    font-size: 15px;
  }


  /*
    Sul telefono diventa:
    "Esplora i vantaggi →"
    su una sola riga.
  */

  .pv-benefits__explore
  span:first-child br {
    display: none;
  }


  .pv-benefits__explore-arrow {
    font-size: 23px;
  }


  /* =======================================================
     LUMYRA
  ======================================================= */

  .pv-partner {
    display: none !important;
  }

}

/* =========================================================
   POPUP VANTAGGI — FIGMA CLEAN
========================================================= */

:root {
  --pv-modal-bg: #344041;
  --pv-modal-green: #91c3a2;
  --pv-modal-light: #cfe3c3;
  --pv-modal-mid: #536364;
}

/* overlay */
.pv-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  font-family: "Montserrat", Arial, sans-serif;
  pointer-events: none;
}

.pv-modal.is-open {
  display: flex;
  pointer-events: auto;
}

.pv-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(18, 26, 27, 0.76);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

/* finestra */
.pv-modal__dialog {
  position: relative;
  z-index: 2;
  width: min(1540px, 94vw);
  height: min(820px, 90vh);
  min-height: 650px;
  display: grid;
  grid-template-columns: 31.5% 68.5%;
  overflow: hidden;
  background: var(--pv-modal-bg);
  color: #fff;
  box-shadow: 0 32px 90px rgba(0, 0, 0, 0.30);
}

.pv-modal__close {
  position: absolute;
  z-index: 30;
  top: 18px;
  right: 20px;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  font-family: Arial, sans-serif;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

.pv-modal__close:hover {
  color: #fff;
}

/* sidebar */
.pv-modal__sidebar {
  padding: 52px 44px 42px;
  border-right: 2px solid rgba(207, 227, 195, 0.85);
}

.pv-modal__eyebrow {
  display: block;
  margin-bottom: 20px;
  color: var(--pv-modal-green);
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
}

.pv-modal__sidebar h2 {
  margin: 0;
  color: #fff;
  font-size: 25px;
  line-height: 1.15;
  font-weight: 600;
}

.pv-modal__line {
  display: block;
  width: 66px;
  height: 3px;
  margin-top: 24px;
  background: var(--pv-modal-light);
}

.pv-modal__nav {
  margin-top: 68px;
  display: flex;
  flex-direction: column;
}

.pv-modal__nav-item {
  width: 100%;
  height: 92px;
  padding: 12px 15px;
  display: grid;
  grid-template-columns: 56px 1fr 22px;
  gap: 14px;
  align-items: center;
  border: 0;
  border-bottom: 1px solid rgba(207, 227, 195, 0.42);
  background: transparent;
  color: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.pv-modal__nav-item.is-active {
  background: rgba(145, 195, 162, 0.47);
  border: 1px solid rgba(207, 227, 195, 0.72);
  border-radius: 12px;
}

.pv-modal__nav-number {
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--pv-modal-light);
  border-radius: 50%;
  color: var(--pv-modal-light);
  font-size: 21px;
  line-height: 1;
  font-weight: 500;
}

.pv-modal__nav-item.is-active .pv-modal__nav-number {
  background: var(--pv-modal-light);
  border-color: var(--pv-modal-light);
  color: var(--pv-modal-bg);
  box-shadow: 0 4px 7px rgba(0, 0, 0, 0.22);
}

.pv-modal__nav-label {
  font-size: 13px;
  line-height: 1.35;
  font-weight: 650;
}

.pv-modal__nav-arrow {
  font-size: 36px;
  line-height: 1;
  font-weight: 300;
}

/* area contenuti */
.pv-modal__content {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.pv-modal__panel {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 66px 52px 48px 58px;
  display: grid;
  grid-template-columns: 36% 64%;
  gap: 38px;
  align-items: start;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(7px);
  transition: opacity 0.25s ease, transform 0.30s ease, visibility 0.25s ease;
}

.pv-modal__panel.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: none;
}

/* copy */
.pv-modal__copy {
  min-width: 0;
}

.pv-modal__panel-number {
  width: 54px;
  height: 54px;
  margin-bottom: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--pv-modal-light);
  color: var(--pv-modal-bg);
  font-size: 23px;
  line-height: 1;
  font-weight: 650;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.20);
}

.pv-modal__copy h3 {
  margin: 0 0 34px;
  color: #fff;
  font-size: 28px;
  line-height: 1.08;
  font-weight: 600;
}

.pv-modal__description {
  max-width: 345px;
  margin: 0 0 47px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  line-height: 1.45;
}

.pv-modal__points {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 25px;
  list-style: none;
}

.pv-modal__points li {
  position: relative;
  max-width: 350px;
  padding-left: 40px;
  color: rgba(255, 255, 255, 0.93);
  font-size: 11.5px;
  line-height: 1.38;
}



/* visual generico */
.pv-modal__visual {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

/* 01 */
.pv-modal__visual--01 {
  padding-top: 67px;
}

.pv-modal__chart-wrap {
  position: relative;
  width: 100%;
  max-width: 525px;
  margin-left: auto;
}

.pv-modal__chart-image {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.pv-modal__chart-badge {
  position: absolute;
  right: -34px;
  bottom: -40px;
  width: 108px;
  height: 108px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--pv-modal-light);
  color: var(--pv-modal-bg);
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.25);
}

.pv-modal__chart-badge strong {
  font-size: 25px;
  line-height: 1;
}

.pv-modal__chart-badge span {
  margin-top: 3px;
  font-size: 20px;
  line-height: 1;
  font-weight: 700;
}

/* 02 */
.pv-modal__visual--02 {
  padding-top: 150px;
}

.pv-flow-card {
  width: 100%;
  max-width: 535px;
  margin-left: auto;
  padding: 38px 36px 30px;
  border: 1px solid rgba(207, 227, 195, 0.72);
  border-radius: 12px;
}

.pv-flow-card h4 {
  margin: 0 0 42px;
  color: #fff;
  font-size: 21px;
  line-height: 1.15;
  font-weight: 700;
}

.pv-flow {
  display: grid;
  grid-template-columns: 1fr 34px 1fr 34px 1fr 34px 1fr;
  align-items: start;
  gap: 4px;
}

.pv-flow__node {
  min-width: 0;
  text-align: center;
}

.pv-flow__node svg {
  width: 46px;
  height: 46px;
  margin-bottom: 12px;
  fill: none;
  stroke: var(--pv-modal-green);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pv-flow__node strong {
  display: block;
  color: #fff;
  font-size: 10.5px;
  line-height: 1.35;
}

.pv-flow__arrow {
  padding-top: 10px;
  color: #fff;
  font-size: 30px;
  line-height: 1;
}

.pv-flow__return {
  position: relative;
  width: 78%;
  height: 36px;
  margin: 17px 5% 0 auto;
}

.pv-flow__return-line {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5px;
  height: 22px;
  border: 2px dashed var(--pv-modal-green);
  border-top: 0;
  border-radius: 0 0 15px 15px;
}

.pv-flow__return-start,
.pv-flow__return-end {
  position: absolute;
  top: 0;
  width: 9px;
  height: 9px;
  border: 2px solid var(--pv-modal-green);
  border-radius: 50%;
}

.pv-flow__return-start { left: -3px; }
.pv-flow__return-end { right: -3px; }

/* 03 */
.pv-modal__visual--03 {
  padding-top: 0;
}

.pv-property-image {
  display: block;
  width: 100%;
  max-width: 555px;
  margin-left: auto;
  aspect-ratio: 1.66 / 1;
  object-fit: cover;
  border-radius: 10px;
}

.pv-property-stats {
  width: 100%;
  max-width: 555px;
  margin: 44px 0 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

.pv-property-stat {
  min-height: 205px;
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #b9cdb4;
  color: var(--pv-modal-bg);
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 5px 9px rgba(0, 0, 0, 0.24);
}

.pv-property-stat__icon {
  width: 50px;
  height: 50px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--pv-modal-bg);
  border-radius: 50%;
}

.pv-property-stat__icon svg {
  width: 31px;
  height: 31px;
  fill: none;
  stroke: var(--pv-modal-bg);
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pv-property-stat__label {
  min-height: 34px;
  color: #fff;
  font-size: 11.5px;
  line-height: 1.35;
  font-weight: 700;
}

.pv-property-stat__value {
  margin: 12px 0 9px;
  font-size: 25px;
  line-height: 1;
}

.pv-property-stat p {
  margin: 0;
  font-size: 9px;
  line-height: 1.4;
}

/* 04 */
.pv-modal__visual--04 {
  padding-top: 0;
}

.pv-impact-main {
  width: 100%;
  max-width: 485px;
  margin-left: auto;
  padding: 38px 40px 32px;
  background: #b7cbb2;
  color: var(--pv-modal-bg);
  border-radius: 12px;
  box-shadow: 0 5px 9px rgba(0, 0, 0, 0.26);
}

.pv-impact-main h4 {
  margin: 0 0 29px;
  color: #fff;
  font-size: 20px;
  line-height: 1.15;
  font-weight: 700;
}

.pv-impact-main__row {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 17px;
  align-items: center;
  margin-top: 23px;
}

.pv-impact-main__row:first-of-type {
  margin-top: 0;
}

.pv-impact-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--pv-modal-bg);
  border-radius: 50%;
}


.pv-impact-main__row strong {
  display: block;
  margin-bottom: 5px;
  font-size: 11.5px;
  line-height: 1.25;
}

.pv-impact-main__row span {
  display: block;
  font-size: 10.5px;
  line-height: 1.3;
}

.pv-impact-bottom {
  width: 100%;
  max-width: 525px;
  margin: 34px 0 0 auto;
  display: grid;
  grid-template-columns: 0.78fr 1.12fr;
  gap: 26px;
}

.pv-impact-stat {
  min-height: 188px;
  padding: 22px 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--pv-modal-mid);
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 5px 9px rgba(0, 0, 0, 0.24);
}

.pv-impact-stat__icon {
  width: 50px;
  height: 50px;
  margin-bottom: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 50%;
}

.pv-impact-stat__icon svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: rgba(255, 255, 255, 0.72);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.pv-impact-stat--green .pv-impact-stat__icon svg {
  stroke: var(--pv-modal-light);
}

.pv-impact-stat span {
  color: #fff;
  font-size: 11.5px;
  line-height: 1.35;
  font-weight: 700;
}

.pv-impact-stat strong {
  margin: 9px 0 8px;
  color: #cde4c5 !important;
  font-size: 24px;
  line-height: 1;
}

.pv-impact-stat--green strong {
  color: var(--pv-modal-light);
}

.pv-impact-stat p {
  margin: 0;
  color: rgba(255, 255, 255, 0.90);
  font-size: 9px;
  line-height: 1.45;
}

body.pv-modal-open {
  overflow: hidden;
}

/* il loader non deve mai bloccare i click su questa pagina */
.fotovoltaico-page #page-loader {
  pointer-events: none !important;
}

/* tablet / finestre più piccole */
@media (max-width: 1180px) {
  .pv-modal__dialog {
    width: 96vw;
    height: 88vh;
    min-height: 0;
  }

  .pv-modal__sidebar {
    padding: 36px 28px;
  }

  .pv-modal__sidebar h2 {
    font-size: 21px;
  }

  .pv-modal__nav {
    margin-top: 40px;
  }

  .pv-modal__nav-item {
    height: 75px;
    grid-template-columns: 46px 1fr 18px;
  }

  .pv-modal__nav-number {
    width: 42px;
    height: 42px;
    font-size: 17px;
  }

  .pv-modal__nav-label {
    font-size: 11px;
  }

  .pv-modal__panel {
    padding: 48px 32px;
    gap: 26px;
  }

  .pv-modal__copy h3 {
    font-size: 24px;
  }

  .pv-modal__description {
    margin-bottom: 30px;
  }

  .pv-modal__visual--02 {
    padding-top: 115px;
  }
}

/* mobile popup: versione verticale e utilizzabile */
@media (max-width: 768px) {
  .pv-modal {
    padding: 0;
    align-items: stretch;
  }

  .pv-modal__dialog {
    width: 100%;
    height: 100dvh;
    display: block;
    overflow-y: auto;
  }

  .pv-modal__close {
    position: fixed;
    top: 14px;
    right: 14px;
  }

  .pv-modal__sidebar {
    padding: 54px 20px 20px;
    border-right: 0;
    border-bottom: 1px solid rgba(207, 227, 195, 0.35);
  }

  .pv-modal__eyebrow {
    font-size: 10px;
  }

  .pv-modal__sidebar h2 {
    font-size: 20px;
  }

  .pv-modal__line {
    margin-top: 14px;
  }

  .pv-modal__nav {
    margin-top: 24px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
  }

  .pv-modal__nav-item {
    height: 52px;
    min-height: 0;
    padding: 6px;
    display: flex;
    justify-content: center;
    border: 1px solid rgba(207, 227, 195, 0.35);
    border-radius: 8px;
  }

  .pv-modal__nav-label,
  .pv-modal__nav-arrow {
    display: none;
  }

  .pv-modal__nav-number {
    width: 34px;
    height: 34px;
    font-size: 14px;
  }

  .pv-modal__content {
    min-height: 720px;
    overflow: visible;
  }

  .pv-modal__panel {
    position: relative;
    inset: auto;
    display: none;
    width: 100%;
    height: auto;
    min-height: 0;
    padding: 34px 20px 52px;
    grid-template-columns: 1fr;
    gap: 34px;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .pv-modal__panel.is-active {
    display: grid;
  }

  .pv-modal__panel-number {
    width: 44px;
    height: 44px;
    margin-bottom: 24px;
    font-size: 18px;
  }

  .pv-modal__copy h3 {
    margin-bottom: 20px;
    font-size: 25px;
  }

  .pv-modal__description {
    max-width: none;
    margin-bottom: 28px;
    font-size: 13px;
  }

  .pv-modal__points {
    gap: 17px;
  }

  .pv-modal__points li {
    max-width: none;
    font-size: 11px;
  }

  .pv-modal__visual,
  .pv-modal__visual--01,
  .pv-modal__visual--02,
  .pv-modal__visual--03,
  .pv-modal__visual--04 {
    padding-top: 0;
  }

  .pv-modal__chart-wrap,
  .pv-flow-card,
  .pv-property-image,
  .pv-property-stats,
  .pv-impact-main,
  .pv-impact-bottom {
    width: 100%;
    max-width: none;
    margin-left: 0;
  }

  .pv-modal__chart-badge {
    right: 8px;
    bottom: -26px;
    width: 82px;
    height: 82px;
  }

  .pv-modal__chart-badge strong {
    font-size: 20px;
  }

  .pv-modal__chart-badge span {
    font-size: 16px;
  }

  .pv-flow-card {
    padding: 24px 16px;
  }

  .pv-flow {
    grid-template-columns: 1fr 20px 1fr 20px 1fr 20px 1fr;
    gap: 2px;
  }

  .pv-flow__node svg {
    width: 34px;
    height: 34px;
  }

  .pv-flow__node strong {
    font-size: 8px;
  }

  .pv-flow__arrow {
    font-size: 20px;
  }

  .pv-property-stats,
  .pv-impact-bottom {
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .pv-property-stat,
  .pv-impact-stat {
    min-height: 170px;
  }

  .pv-impact-main {
    padding: 26px 22px;
  }
}
/* =========================================================
   POPUP DESKTOP — MATCH FIGMA
   CORREZIONE PROPORZIONI + SIDEBAR + LINEA + PANEL 01
========================================================= */

@media (min-width: 1101px) {

  /* =======================================================
     FINESTRA — STESSO RAPPORTO DEL FRAME FIGMA
  ======================================================= */

  .pv-modal__dialog {
    width: min(
      94vw,
      calc(90vh * 1.8703)
    ) !important;

    height: auto !important;
    aspect-ratio: 2048 / 1095 !important;

    min-height: 0 !important;
    max-height: 90vh !important;

    grid-template-columns:
      30.7%
      69.3% !important;

    overflow: visible !important;
  }


  /* =======================================================
     SIDEBAR SINISTRA
  ======================================================= */

  .pv-modal__sidebar {
    position: relative !important;

    padding:
      42px
      36px
      34px !important;

    /*
      IMPORTANTISSIMO:
      eliminiamo il border che faceva
      la linea da cima a fondo.
    */
    border-right: 0 !important;
  }


  /* =======================================================
     LINEA VERTICALE
     FIGMA: parte vicino al centro del badge 01
     e termina quasi in fondo
  ======================================================= */

  .pv-modal__sidebar::after {
    content: "";

    position: absolute;

    right: 0;

    top: 15.4%;
    bottom: 7%;

    width: 2px;

    background: #cde4c5;

    opacity: 0.95;

    pointer-events: none;
  }


  /* =======================================================
     TITOLO SINISTRA — PIÙ PICCOLO E PIÙ IN ALTO
  ======================================================= */

  .pv-modal__eyebrow {
    margin-bottom: 16px !important;

    font-size: 11px !important;
    line-height: 1.1 !important;
  }


    .pv-modal__sidebar h2 {
        margin: 0 !important;

        width: 100% !important;
        max-width: none !important;

        font-size: 21.5px !important;
        line-height: 1.16 !important;
        letter-spacing: -0.015em !important;

        font-weight: 600 !important;
    }


  .pv-modal__line {
    width: 55px !important;
    height: 3px !important;

    margin-top: 20px !important;
  }


  /* =======================================================
     MENU SINISTRA — PIÙ COMPATTO E PIÙ IN ALTO
  ======================================================= */

  .pv-modal__nav {
    margin-top: 54px !important;

    gap: 0 !important;
  }


  .pv-modal__nav-item {
    height: 84px !important;
    min-height: 84px !important;

    padding:
      10px
      13px !important;

    grid-template-columns:
      48px
      1fr
      20px !important;

    gap: 12px !important;
  }


  .pv-modal__nav-item.is-active {
    border-radius: 10px !important;
  }


  .pv-modal__nav-number {
    width: 44px !important;
    height: 44px !important;

    font-size: 18px !important;
  }


  .pv-modal__nav-label {
    font-size: 11.5px !important;
    line-height: 1.3 !important;

    font-weight: 650 !important;
  }


  .pv-modal__nav-arrow {
    font-size: 31px !important;
  }


  /* =======================================================
     AREA DESTRA
  ======================================================= */

  .pv-modal__content {
    overflow: visible !important;
  }


  /*
    Spostiamo l'inizio del contenuto verso il basso.

    In Figma:
    - il badge 01 non è attaccato al bordo superiore
    - il centro del badge è quasi allineato
      all'inizio della linea verticale.
  */

  .pv-modal__panel {
    padding:
      96px
      50px
      44px
      56px !important;

    grid-template-columns:
    minmax(260px, 0.72fr)
    minmax(390px, 1.18fr) !important;

    gap: 44px !important;

    align-items: start !important;

    overflow: visible !important;
  }


  /* =======================================================
     BADGE 01 / 02 / 03 / 04
  ======================================================= */

  .pv-modal__panel-number {
    width: 54px !important;
    height: 54px !important;

    margin-bottom: 36px !important;

    font-size: 22px !important;
  }


  /* =======================================================
     COPY CENTRALE
  ======================================================= */

  .pv-modal__copy h3 {
    margin:
        0
        0
        34px !important;

    font-size: 25px !important;
    line-height: 1.08 !important;

    max-width: 360px !important;
    white-space: normal !important;
 }
  .pv-modal__description {
    max-width: 330px !important;

    margin:
      0
      0
      45px !important;

    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }


  .pv-modal__points {
    gap: 23px !important;
  }


  .pv-modal__points li {
    max-width: 340px !important;

    padding-left: 37px !important;

    font-size: 11px !important;
    line-height: 1.35 !important;
  }




  /* =======================================================
     PANEL 01 — GRAFICO
  ======================================================= */

  .pv-modal__panel[data-pv-panel="0"]
  .pv-modal__visual {
    width: 100% !important;

    padding-top: 64px !important;

    overflow: visible !important;

    display: flex !important;

    align-items: flex-start !important;
    justify-content: flex-start !important;
  }


  .pv-modal__panel[data-pv-panel="0"]
  .pv-modal__chart-wrap {
    position: relative !important;

    width: 100% !important;

    max-width: 515px !important;

    margin:
      0
      0
      0
      auto !important;

    overflow: visible !important;
  }


  .pv-modal__panel[data-pv-panel="0"]
  .pv-modal__chart-image {
    display: block !important;

    width: 100% !important;
    height: auto !important;

    max-width: none !important;
    max-height: none !important;

    object-fit: contain !important;

    border: 0 !important;
    border-radius: 0 !important;
  }


  /* =======================================================
     BADGE -60%
  ======================================================= */

  .pv-modal__panel[data-pv-panel="0"]
  .pv-modal__chart-badge {
    position: absolute !important;

    right: -35px !important;
    bottom: -39px !important;

    width: 105px !important;
    height: 105px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    border-radius: 11px !important;

    font-size: 18px !important;
    line-height: 1.02 !important;

    text-align: center !important;

    overflow: visible !important;
  }


  /* =======================================================
     X
  ======================================================= */

  .pv-modal__close {
    top: 17px !important;
    right: 18px !important;

    font-size: 27px !important;
  }

}

/* =========================================================
   PANEL 02 — MATCH FIGMA
========================================================= */

@media (min-width: 1101px) {

  /* Porta tutto il contenuto 02 più in alto */
  .pv-modal__panel[data-pv-panel="1"] {
    padding-top: 96px !important;
  }


  /* Numero 02 */
  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__panel-number {
    margin-bottom: 34px !important;
  }


  /* =======================================================
     TITOLO
     Deve essere:
     Maggiore autonomia
     energetica
  ======================================================= */

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__text h3 {
    margin:
      0
      0
      34px !important;

    font-size: 25px !important;
    line-height: 1.08 !important;

    /*
      C'è già il <br> dopo "autonomia".
      Questo impedisce che "Maggiore autonomia"
      si spezzi ulteriormente.
    */
    white-space: nowrap !important;
  }


  /* =======================================================
     DESCRIZIONE
  ======================================================= */

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__description {
    max-width: 315px !important;

    margin:
      0
      0
      40px !important;

    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }


  /* =======================================================
     PUNTI
  ======================================================= */

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__points {
    gap: 22px !important;
  }


  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__points li {
    max-width: 320px !important;
  }


  /* =======================================================
     RIQUADRO DESTRA
     Nel sito è troppo basso.
  ======================================================= */

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__visual {
    padding-top: 154px !important;
  }


  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-card {
    width: 100% !important;
    max-width: 520px !important;

    margin-left: auto !important;

    padding:
      36px
      34px
      30px !important;

    border-radius: 11px !important;
  }


  /* titolo interno card */

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-card h4 {
    margin:
      0
      0
      36px !important;

    font-size: 20px !important;
    line-height: 1.12 !important;
  }


  /* =======================================================
     SCHEMA
  ======================================================= */

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-row {
    gap: 8px !important;
  }


  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-step {
    min-width: 64px !important;
  }


  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-step-icon {
    width: 42px !important;
    height: 42px !important;

    margin-bottom: 9px !important;
  }


  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-step span {
    font-size: 10.5px !important;
    line-height: 1.25 !important;
  }


  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-arrow {
    font-size: 29px !important;
  }


  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__flow-line {
    margin-top: 16px !important;

    height: 26px !important;
  }

}
@media (min-width: 1101px) {

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__copy h3 {
    width: 340px !important;
    max-width: 340px !important;

    white-space: normal !important;
  }

}

/* =========================================================
   PANEL 02 — GRAFICA FIGMA
========================================================= */

@media (min-width: 1101px) {

  .pv-modal__panel[data-pv-panel="1"]
  .pv-modal__visual {
    padding-top: 136px !important;

    display: flex !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;

    overflow: visible !important;
  }


  .pv-modal__autonomy-image {
    display: block;

    width: 100%;
    max-width: 500px;

    height: auto;

    margin-left: auto;

    object-fit: contain;
  }

}

.pv-modal__points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.pv-modal__points li {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.pv-point-icon {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  object-fit: contain;
  margin-top: 2px;
}

.pv-modal__points li span {
  display: block;
  line-height: 1.35;
}

/* =========================================================
   CHECKER — ALLINEAMENTO CON TESTO SOPRA
========================================================= */

.pv-modal__points {
  margin-left: 0 !important;
  padding-left: 0 !important;
  width: 100% !important;
}

.pv-modal__points li {
  padding-left: 0 !important;

  display: flex !important;
  align-items: center !important;

  gap: 14px !important;

  max-width: 330px !important;
}

/* disattiva definitivamente il vecchio checker CSS */
.pv-modal__points li::before {
  content: none !important;
  display: none !important;
}

.pv-point-icon {
  width: 30px !important;
  height: 30px !important;

  flex: 0 0 30px !important;

  margin: 0 !important;

  object-fit: contain;
}

.pv-modal__points li span {
  margin: 0 !important;
  padding: 0 !important;

  line-height: 1.35 !important;
}

/* =========================================================
   PANEL 03 — MATCH FIGMA
========================================================= */

@media (min-width: 1101px) {

  /* Porta tutto il contenuto 03 più in alto */
  .pv-modal__panel[data-pv-panel="2"] {
    padding-top: 96px !important;
  }


  /* CERCHIO 03 */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-modal__panel-number {
    width: 54px !important;
    height: 54px !important;

    margin-bottom: 36px !important;

    font-size: 22px !important;
  }


  /* TITOLO */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-modal__copy h3 {
    margin:
      0
      0
      28px !important;

    font-size: 25px !important;
    line-height: 1.08 !important;
  }


  /* DESCRIZIONE */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-modal__description {
    max-width: 310px !important;

    margin:
      0
      0
      38px !important;

    font-size: 12px !important;
    line-height: 1.42 !important;
  }


  /* PUNTI */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-modal__points {
    gap: 20px !important;
  }


  .pv-modal__panel[data-pv-panel="2"]
  .pv-modal__points li {
    max-width: 320px !important;

    padding-left: 0 !important;

    gap: 12px !important;

    font-size: 10.5px !important;
    line-height: 1.32 !important;
  }


  .pv-modal__panel[data-pv-panel="2"]
  .pv-point-icon {
    width: 27px !important;
    height: 27px !important;

    flex: 0 0 27px !important;
  }


  /* =======================================================
     FOTO
  ======================================================= */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-modal__visual--03 {
    padding-top: 0 !important;

    transform: none !important;
  }


  .pv-modal__panel[data-pv-panel="2"]
  .pv-property-image {
    width: 100% !important;

    max-width: 545px !important;

    margin-left: auto !important;

    border-radius: 8px !important;
  }


  /* =======================================================
     DUE CARD SOTTO
  ======================================================= */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-property-stats {
    max-width: 545px !important;

    margin:
      34px
      0
      0
      auto !important;

    grid-template-columns:
      1fr
      1fr !important;

    gap: 26px !important;
  }


  .pv-modal__panel[data-pv-panel="2"]
  .pv-property-stat {
    min-height: 165px !important;

    padding:
      18px
      16px !important;

    border-radius: 10px !important;

    background: #b9cdb4;

    box-shadow:
        0 8px 10px rgba(0, 0, 0, 0.28) !important;
  }


  /* icona card */

    .pv-property-stat__icon {
    width: 52px !important;
    height: 52px !important;

    margin-bottom: 16px !important;

    display: flex;
    align-items: center;
    justify-content: center;

    border: 1px solid #344041;
    border-radius: 50%;
    }

    .pv-property-stat__icon img {
    display: block;

    width: 31px;
    height: 31px;

    object-fit: contain;
    }

  /* titolo card */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-property-stat__label {
    min-height: 30px !important;

    font-size: 10.5px !important;
    line-height: 1.3 !important;
  }


  /* percentuale */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-property-stat__value {
    margin:
      10px
      0
      8px !important;

    font-size: 22px !important;
  }


  /* descrizione card */

  .pv-modal__panel[data-pv-panel="2"]
  .pv-property-stat p {
    font-size: 8px !important;
    line-height: 1.35 !important;
  }

}

/* =========================================================
   PANEL 04 — MATCH FIGMA
========================================================= */

@media (min-width: 1101px) {

  /* =======================================================
     ALLINEAMENTO GENERALE
     Uguale a 01 / 02 / 03
  ======================================================= */

  .pv-modal__panel[data-pv-panel="3"] {
    padding-top: 96px !important;
  }


  /* =======================================================
     CERCHIO 04
     Identico agli altri numeri
  ======================================================= */

  .pv-modal__panel[data-pv-panel="3"]
  .pv-modal__panel-number {
    width: 54px !important;
    height: 54px !important;

    margin-bottom: 36px !important;

    font-size: 22px !important;
  }


  /* =======================================================
     TITOLO
  ======================================================= */

  .pv-modal__panel[data-pv-panel="3"]
  .pv-modal__copy h3 {
    margin:
      0
      0
      34px !important;

    font-size: 25px !important;
    line-height: 1.08 !important;

    max-width: 330px !important;
  }


  /* =======================================================
     DESCRIZIONE
  ======================================================= */

  .pv-modal__panel[data-pv-panel="3"]
  .pv-modal__description {
    max-width: 315px !important;

    margin:
      0
      0
      42px !important;

    font-size: 12px !important;
    line-height: 1.43 !important;
  }


  /* =======================================================
     CHECKER
     Stessa impostazione usata negli altri popup
  ======================================================= */

  .pv-modal__panel[data-pv-panel="3"]
  .pv-modal__points {
    gap: 20px !important;
  }


  .pv-modal__panel[data-pv-panel="3"]
  .pv-modal__points li {
    max-width: 330px !important;

    padding-left: 0 !important;

    display: flex !important;
    align-items: center !important;

    gap: 12px !important;

    font-size: 10.5px !important;
    line-height: 1.32 !important;
  }


  .pv-modal__panel[data-pv-panel="3"]
  .pv-point-icon {
    width: 27px !important;
    height: 27px !important;

    flex: 0 0 27px !important;

    margin: 0 !important;
  }


  /* =======================================================
     AREA DESTRA
  ======================================================= */

  .pv-modal__panel[data-pv-panel="3"]
  .pv-modal__visual--04 {
    padding-top: 0 !important;

    width: 100% !important;

    display: flex !important;
    flex-direction: column !important;

    align-items: flex-end !important;
  }


  /* =======================================================
     CARD VERDE CHIARO GRANDE
     Deve avere la STESSA larghezza totale
     delle due card sotto
  ======================================================= */

    .pv-modal__panel[data-pv-panel="3"]
    .pv-impact-main {
    width: 100% !important;
    max-width: 470px !important;

    min-height: 255px !important;

    margin:
        0
        0
        0
        auto !important;

    padding:
        28px
        32px
        26px !important;

    border-radius: 12px !important;

    box-shadow:
        0 7px 10px rgba(0, 0, 0, 0.28) !important;
    }


  /* titolo card verde */

    .pv-modal__panel[data-pv-panel="3"]
    .pv-impact-main h4 {
    margin: 0 0 22px !important;

    font-size: 18px !important;
    line-height: 1.15 !important;
    }

    .pv-modal__panel[data-pv-panel="3"]
    .pv-impact-main__row {
    grid-template-columns: 44px 1fr !important;

    gap: 14px !important;

    margin-top: 16px !important;
    }


  .pv-modal__panel[data-pv-panel="3"]
  .pv-impact-main__row:first-of-type {
    margin-top: 0 !important;
  }


  .pv-modal__panel[data-pv-panel="3"]
  .pv-impact-main__row strong {
    margin-bottom: 4px !important;

    font-size: 11px !important;
    line-height: 1.25 !important;
  }


  .pv-modal__panel[data-pv-panel="3"]
  .pv-impact-main__row span {
    font-size: 10.5px !important;
    line-height: 1.3 !important;
  }


  /* =======================================================
     DUE CARD GRIGIE
  ======================================================= */

    .pv-modal__panel[data-pv-panel="3"]
    .pv-impact-bottom {
    width: 100% !important;
    max-width: 470px !important;

    margin:
        22px
        0
        0
        auto !important;

    display: grid !important;

    grid-template-columns:
        1fr
        1fr !important;

    gap: 22px !important;
    }


    .pv-modal__panel[data-pv-panel="3"]
    .pv-impact-stat {
    min-height: 160px !important;

    padding:
        18px
        15px !important;

    display: flex !important;
    flex-direction: column !important;

    align-items: center !important;
    justify-content: center !important;

    border-radius: 11px !important;

    text-align: center !important;

    box-shadow:
        0 7px 10px rgba(0, 0, 0, 0.28) !important;
    }


  /* =======================================================
     CENTRATURA TESTI CARD GRIGIE
     Vale anche per la seconda che nel Figma
     è leggermente decentrata.
  ======================================================= */

.pv-modal__panel[data-pv-panel="3"]
.pv-impact-stat span {
  font-size: 10px !important;
  line-height: 1.3 !important;
}

.pv-modal__panel[data-pv-panel="3"]
.pv-impact-stat strong {
  margin:
    8px
    0
    7px !important;

  font-size: 21px !important;
}

.pv-modal__panel[data-pv-panel="3"]
.pv-impact-stat p {
  max-width: 160px !important;

  margin: 0 auto !important;

  font-size: 8px !important;
  line-height: 1.35 !important;

  text-align: center !important;
}


  .pv-modal__panel[data-pv-panel="3"]
  .pv-impact-stat span {
    font-size: 11px !important;
    line-height: 1.35 !important;
  }


  .pv-modal__panel[data-pv-panel="3"]
  .pv-impact-stat strong {
    margin:
      10px
      0
      9px !important;

    font-size: 23px !important;
    line-height: 1 !important;
  }


  .pv-modal__panel[data-pv-panel="3"]
  .pv-impact-stat p {
    max-width: 175px !important;

    margin-top: 0 !important;

    font-size: 8.5px !important;
    line-height: 1.4 !important;
  }

}

/* =========================================================
   POPUP 04 — ICONE ORIGINALI FIGMA
========================================================= */

.pv-modal__panel[data-pv-panel="3"]
.pv-impact-icon {
  width: 46px !important;
  height: 46px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  flex: 0 0 46px !important;

  border: 1px solid #344041 !important;
  border-radius: 50% !important;
}

.pv-modal__panel[data-pv-panel="3"]
.pv-impact-icon img {
  display: block;

  width: 27px !important;
  height: 27px !important;

  object-fit: contain;
}
/* =========================================================
   POPUP 04 — ICONE CARD INFERIORI
========================================================= */

.pv-modal__panel[data-pv-panel="3"]
.pv-impact-stat__icon {
  width: 52px !important;
  height: 52px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  border: 1px solid rgba(255, 255, 255, 0.75) !important;
  border-radius: 50% !important;
}

.pv-modal__panel[data-pv-panel="3"]
.pv-impact-stat__icon img {
  display: block;

  width: 28px !important;
  height: 28px !important;

  object-fit: contain;
}

/* =========================================================
   NAV POPUP — ACTIVE COME FIGMA
========================================================= */

.pv-modal__nav-item {
  position: relative !important;
  z-index: 1;
}


/* la riga mantiene SEMPRE la sua larghezza completa */
.pv-modal__nav-item.is-active {
  width: 100% !important;
  margin: 0 !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;

  border-bottom:
    1px solid rgba(205, 227, 195, 0.48) !important;
}


/* il verde mantiene tutta la larghezza,
   ma è più basso rispetto alla riga */
.pv-modal__nav-item.is-active::before {
  content: "";

  position: absolute;
  z-index: -1;

  left: 0;
  right: 0;

  top: 8px;
  bottom: 8px;

  background: rgba(145, 195, 162, 0.47);

  border:
    1px solid rgba(205, 227, 195, 0.75);

  border-radius: 10px;

  pointer-events: none;
}


/* la freccia NON va spostata */
.pv-modal__nav-item.is-active .pv-modal__nav-arrow {
  transform: none !important;
}

/* =========================================================
   GALLERIA FOTOVOLTAICO
   UGUALE A IMPIANTI ELETTRICI
========================================================= */

.pv-projects {
  overflow: hidden;
}


/* La gallery esce dal container e prende tutta la viewport */

.pv-projects__grid {
  --pv-gallery-start-space: 120px;
  --pv-gallery-initial-crop: 120px;

  width: 100vw;

  position: relative;
  left: 50%;

  margin-left: -50vw;

  display: flex;
  align-items: stretch;

  gap: 42px;

  overflow-x: auto;
  overflow-y: hidden;

  padding-left: var(--pv-gallery-start-space);
  padding-right: 120px;
  padding-bottom: 0;

  scroll-snap-type: none;

  overscroll-behavior-x: contain;

  -webkit-overflow-scrolling: touch;

  scrollbar-width: none;

  cursor: grab;
}


.pv-projects__grid::-webkit-scrollbar {
  display: none;
}


.pv-projects__grid.is-dragging {
  cursor: grabbing;

  user-select: none;
}


/* =========================================================
   FOTO
========================================================= */

.pv-project {
  width: 34vw;
  min-width: 430px;

  flex: 0 0 34vw;

  margin: 0;
  padding: 0;

  background: transparent;

  overflow: hidden;

  border-radius: 10px;

  scroll-snap-align: none;
}


.pv-project img {
  display: block;

  width: 100%;
  height: 345px;

  object-fit: cover;
  object-position: center;

  border-radius: 10px;

  pointer-events: none;
  user-select: none;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

  .pv-projects__grid {
    --pv-gallery-start-space: 40px;
    --pv-gallery-initial-crop: 40px;

    gap: 16px;

    padding-left: var(--pv-gallery-start-space);
    padding-right: 20px;
  }


  .pv-project {
    width: 76vw;
    min-width: 76vw;

    flex-basis: 76vw;

    border-radius: 8px;
  }


  .pv-project img {
    width: 100%;
    height: auto;

    aspect-ratio: 1.55 / 1;

    border-radius: 8px;
  }

}