/* =================================================
   FENIXO — Pagina servizio (landing SEO)
   Si appoggia a style.css (header, menu, cursore, footer, tag, btn-line).
================================================= */

/* ---------- Scala tipografica (valori fissi) ---------- */
:root {
  --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --fs-h1: 80px;
  --fs-h2: 60px;
  --fs-h3: 32px;   /* provvisorio: da confermare con lo stile Framer */
  --fs-h4: 20px;   /* provvisorio */
  --fs-xl: 25px;
  --fs-large: 18px;
  --fs-body: 18px;
}

@media (max-width: 900px) {
  :root {
    --fs-h1: 44px;
    --fs-h2: 34px;
    --fs-h3: 24px;
    --fs-h4: 18px;
    --fs-xl: 20px;
  }
}

/* Inter per tutto il testo corrente; PP Formula resta per titoli e interfaccia */
.lp-text,
.lp-form-intro,
.lp-form-note,
.lp-form-alt,
.lp-form-status,
.lp-faq-q,
.lp-field input,
.lp-field textarea {
  font-family: var(--font-body);
}

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

.header-cta {
  padding: 11px 18px;
  font-size: 13px;
  white-space: nowrap;
}

/* con il menu mobile aperto il pulsante resta raggiungibile */
.menu-open .site-header { position: fixed; background: transparent; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }
  .header-cta { display: none; }
}

/* ---------- Pulsanti ---------- */
.lp-btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 18px 26px 15px;
  border: 1px solid var(--oro);
  border-radius: 6px;
  background: var(--oro);
  color: var(--nero);
  font-family: inherit;
  font-size: var(--micro-size);
  font-weight: 600;
  line-height: var(--micro-line);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: left;
  transition: background-color 0.35s ease, color 0.35s ease, border-color 0.35s ease;
}

.lp-btn .btn-arrow {
  margin-top: -3px;
}

.lp-btn:hover,
.lp-btn:focus-visible {
  background: transparent;
  color: var(--oro);
}

.lp-btn:hover .btn-arrow,
.lp-btn:focus-visible .btn-arrow {
  transform: translateX(4px) rotate(45deg);
}

.lp-btn--ghost {
  background: transparent;
  color: var(--crema);
  border-color: rgba(255, 247, 229, 0.3);
}

.lp-btn--ghost:hover,
.lp-btn--ghost:focus-visible {
  background: var(--crema);
  border-color: var(--crema);
  color: var(--nero);
}

.lp-btn-line {
  font-size: var(--sub-size);
  line-height: var(--sub-line);
  border-bottom: 1px solid rgba(255, 234, 187, 0.28);
}

.lp-cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 20px;
  margin-top: clamp(28px, 4vh, 44px);
}

.lp-cta-center {
  display: flex;
  justify-content: center;
  margin-top: clamp(64px, 9vw, 130px);
}

/* ---------- Hero ---------- */
.lp-hero {
  position: relative;
  z-index: 1;
  min-height: 100svh;
  padding: clamp(120px, 16vh, 170px) var(--pad) clamp(48px, 7vh, 80px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  background:
    radial-gradient(70vw 60vw at 100% 0%, rgba(0, 46, 72, 0.55) 0%, rgba(0, 46, 72, 0) 70%),
    var(--nero);
}




.lp-hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--grid-max);
  margin: 0 auto;
}

.lp-hero-title {
  max-width: 8.2em;
  font-size: var(--fs-h1);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.06em;
  text-transform: none;
  color: var(--oro);
}

.lp-hero-title .line-wrap {
  padding: 0.14em 0.04em 0.16em;
}

.lp-hero-title .line-wrap + .line-wrap {
  margin-top: -0.3em;
}

.lp-hero-title em {
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
  font-size: 1em;
  text-transform: none;
}

.lp-hero-title .lp-hero-eyebrow {
  margin-bottom: 40px;
  color: var(--crema);
}

.lp-hero-title .line-wrap:first-child {
  padding-bottom: 0;
}

.lp-hero-copy {
  display: grid;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  max-width: 680px;
  margin-top: clamp(28px, 4vh, 48px);
}

.lp-hero-proof {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--grid-max);
  margin: clamp(44px, 7vh, 84px) auto 0;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  font-family: var(--font-body);
  font-size: var(--fs-large);
  line-height: 25px;
  letter-spacing: -0.03em;
  text-transform: none;
  color: rgba(255, 247, 229, 0.74);
}

.lp-hero-proof i {
  font-style: normal;
  margin: 0 0.9em;
  color: var(--muted);
}

/* ---------- Layout sezioni ---------- */
.lp-flow {
  position: relative;
  background: var(--nero);
}

.lp-section {
  position: relative;
  padding: clamp(96px, 12vw, 190px) var(--pad);
}


.lp-inner {
  position: relative;
  z-index: 1;
  max-width: var(--grid-max);
  margin: 0 auto;
}

.lp-split {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(40px, 6vw, 120px);
  align-items: start;
}

.lp-sticky {
  position: sticky;
  top: 120px;
}

/* ---------- Tipografia ---------- */
.lp-h2 {
  font-size: var(--fs-h2);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-transform: none;
  color: var(--crema);
}

.lp-h2 .line-wrap {
  padding-top: 0.12em;
  padding-bottom: 0.1em;
}

.lp-h2 .line-wrap + .line-wrap {
  margin-top: 0;
}

.lp-h2 em {
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
  font-size: 1em;
  text-transform: none;
  color: inherit;
}

.lp-h2 strong {
  font-weight: inherit;
  text-transform: none;
  color: var(--crema);
}

.lp-shift {
  padding-left: clamp(16px, 3vw, 48px);
}

.lp-body {
  padding-top: clamp(0px, 1.2vw, 22px);
}

.lp-lead {
  font-size: var(--fs-xl);
  font-weight: 600;
  line-height: 1.44;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--crema);
}

.lp-text {
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
  text-transform: none;
  color: rgba(255, 247, 229, 0.74);
}

.lp-hero .lp-lead {
  font-size: var(--fs-large);
  line-height: 25px;
  letter-spacing: -0.03em;
}

.lp-text--l {
  font-size: var(--fs-large);
  line-height: 25px;
  letter-spacing: -0.03em;
}

.lp-lead + .lp-text,
.lp-text + .lp-text,
.lp-text + .lp-lead {
  margin-top: 1.2em;
}

.lp-lead + .lp-lead {
  margin-top: 1em;
}

.lp-h3 {
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--crema);
  margin-bottom: 14px;
}

.lp-h4 {
  font-size: var(--fs-h4);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--crema);
  margin-bottom: 12px;
}

.lp-subhead {
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--oro);
  margin-top: clamp(72px, 9vw, 120px);
  margin-bottom: clamp(24px, 3vw, 40px);
}

.lp-subhead--inline {
  margin-top: clamp(36px, 4vw, 56px);
  margin-bottom: 16px;
}

.lp-num {
  display: block;
  font-size: var(--fs-body);
  font-weight: 500;
  text-transform: none;
  color: var(--oro);
  margin-bottom: 12px;
}

.lp-closing {
  max-width: 900px;
  margin: clamp(56px, 7vw, 100px) auto 0;
  text-align: center;
  font-size: var(--fs-xl);
  font-weight: 600;
  line-height: 1.44;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--crema);
}

.lp-closing--inline {
  max-width: none;
  margin: clamp(40px, 5vw, 72px) 0 0;
  text-align: left;
  color: var(--oro);
}

/* ---------- Griglie ---------- */
.lp-grid {
  display: grid;
  gap: clamp(40px, 4vw, 72px) clamp(28px, 3.4vw, 64px);
  margin-top: clamp(56px, 7vw, 110px);
}

.lp-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lp-item {
  padding-top: 26px;
  border-top: 1px solid var(--line);
}

.lp-goals {
  margin-top: clamp(80px, 10vw, 150px);
}

/* ---------- Righe numerate ---------- */
.lp-rows {
  list-style: none;
  margin-top: clamp(56px, 7vw, 110px);
  border-top: 1px solid var(--line);
}

.lp-row {
  display: grid;
  grid-template-columns: clamp(48px, 7vw, 110px) minmax(0, 1fr) minmax(0, 1.1fr);
  align-items: baseline;
  gap: 8px clamp(20px, 3vw, 56px);
  padding: clamp(26px, 3.6vh, 40px) 0;
  border-bottom: 1px solid var(--line);
  transition: padding-left 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.lp-row .lp-num {
  margin: 0;
}

.lp-row-title {
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--crema);
  transition: color 0.3s ease;
}

.lp-row:hover {
  padding-left: clamp(8px, 1.2vw, 20px);
}

.lp-row:hover .lp-row-title {
  color: var(--oro);
}

/* ---------- Progetti ---------- */
.lp-projects-viewport {
  position: relative;
  width: 100vw;
  margin: clamp(56px, 7vw, 100px) 0 0 calc(50% - 50vw);
  overflow: hidden;
}

.lp-projects {
  display: flex;
  align-items: flex-start;
  gap: clamp(24px, 3vw, 48px);
  width: max-content;
  padding: 0 var(--pad);
  will-change: transform;
}

.lp-project {
  flex: 0 0 clamp(300px, 34vw, 520px);
}

.lp-project-media {
  display: block;
}

.lp-project-head {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 22px;
}

.lp-project-name {
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  text-transform: none;
}

.lp-project-sector {
  font-size: var(--micro-size);
  line-height: var(--micro-line);
  letter-spacing: var(--micro-track);
  color: var(--oro);
}

.lp-project-claim {
  margin: 14px 0 12px;
  font-size: var(--fs-xl);
  font-weight: 600;
  line-height: 1.44;
  letter-spacing: -0.01em;
  text-transform: none;
  color: inherit;
}

.lp-project .service-tags-row {
  margin-top: 22px;
}

.lp-project-link {
  margin-top: 28px;
}

@media (hover: hover) and (pointer: fine) {
  .lp-project-media:hover .project-media-inner {
    filter: none;
    transform: scale(1.06);
  }
}

/* ---------- Statistiche ---------- */
.lp-stats {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 32px clamp(48px, 8vw, 150px);
  margin-top: clamp(80px, 10vw, 150px);
  padding-top: clamp(40px, 5vw, 72px);
  border-top: 1px solid var(--line);
}

.lp-stats .stat-num { font-size: var(--fs-h2); letter-spacing: -0.04em; }
.lp-stats .stat-plus { font-size: 28px; }

.lp-stats li {
  text-align: left;
}

/* ---------- Passi ---------- */
.lp-steps {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px clamp(24px, 3vw, 56px);
  margin-top: clamp(56px, 7vw, 110px);
  counter-reset: none;
}

.lp-step {
  position: relative;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}

.lp-step::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 44px;
  height: 1px;
  background: var(--oro);
}

.lp-step-num {
  display: block;
  font-size: var(--fs-h3);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--oro);
  margin-bottom: 20px;
}

/* ---------- Callout prezzi ---------- */
.lp-callout {
  margin-top: clamp(64px, 9vw, 130px);
  padding: clamp(36px, 5vw, 80px);
  border: 1px solid var(--line);
  border-radius: 4px;
  background: rgba(0, 46, 72, 0.22);
}

.lp-callout .lp-text {
  max-width: 640px;
}

.lp-callout-title {
  font-size: var(--fs-h2);
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.03em;
  text-transform: none;
  color: var(--crema);
  margin-bottom: 24px;
}

.lp-callout-title em {
  font-family: inherit;
  font-style: normal;
  font-weight: inherit;
  font-size: 1em;
  text-transform: none;
  color: inherit;
}

.lp-callout-title--sm {
  font-size: var(--fs-h3);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: clamp(28px, 3vw, 40px) 0 0;
}

/* ---------- FAQ ---------- */
.lp-faq {
  border-top: 1px solid var(--line);
}

.lp-faq-item {
  border-bottom: 1px solid var(--line);
}

.lp-faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  padding: 22px 0;
  background: none;
  border: 0;
  font-size: var(--fs-large);
  font-weight: 400;
  line-height: 25px;
  letter-spacing: -0.03em;
  text-align: left;
  text-transform: none;
  color: var(--crema);
  transition: color 0.3s ease;
}

.lp-faq-q:hover,
.lp-faq-q[aria-expanded="true"] {
  color: var(--oro);
}

.lp-faq-icon {
  position: relative;
  flex: none;
  width: 18px;
  height: 18px;
}

.lp-faq-icon::before,
.lp-faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1.5px;
  background: currentColor;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.lp-faq-icon::after {
  transform: rotate(90deg);
}

.lp-faq-q[aria-expanded="true"] .lp-faq-icon::after {
  transform: rotate(0deg);
}

html.js .lp-faq-a {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition:
    max-height 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s ease;
}

html.js .lp-faq-item.is-open .lp-faq-a {
  opacity: 1;
}

.lp-faq-a .lp-text {
  padding: 0 clamp(0px, 4vw, 56px) 28px 0;
  max-width: 68ch;
}

/* ---------- Contatto / form ---------- */
.lp-end {
  background: var(--nero);
}

.lp-contact {
  padding-bottom: clamp(40px, 5vw, 70px);
}

.lp-split--form {
  grid-template-columns: minmax(0, 6fr) minmax(0, 5.4fr);
}

.lp-contact-intro .lp-lead {
  margin-top: clamp(28px, 3vw, 44px);
}

.lp-form-intro {
  font-size: var(--fs-body);
  line-height: 1.6;
  text-transform: none;
  color: var(--crema);
  margin-bottom: 32px;
}

.lp-form {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.lp-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  border: 0;
}

.lp-field-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.lp-field label,
.lp-field legend {
  font-size: var(--micro-size);
  line-height: var(--micro-line);
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--oro);
  padding: 0;
}

.lp-field label span {
  color: var(--muted);
  letter-spacing: 0.08em;
}

.lp-field input[type="text"],
.lp-field input[type="email"],
.lp-field input[type="tel"],
.lp-field textarea {
  width: 100%;
  padding: 8px 0 12px;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255, 247, 229, 0.28);
  border-radius: 0;
  font-family: inherit;
  font-size: var(--fs-body);
  font-weight: 400;
  text-transform: none;
  color: var(--crema);
  outline: none;
  resize: vertical;
  transition: border-color 0.3s ease;
}

.lp-field input:focus,
.lp-field textarea:focus {
  border-bottom-color: var(--oro);
}

.lp-field .is-invalid,
.lp-field input:user-invalid,
.lp-field textarea:user-invalid {
  border-bottom-color: #e58a7b;
}

.lp-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.lp-pills label {
  position: relative;
  cursor: pointer;
}

.lp-pills input {
  position: absolute;
  opacity: 0;
  inset: 0;
  margin: 0;
  cursor: pointer;
}

.lp-pills span {
  display: inline-flex;
  padding: 11px 18px 8px;
  border: 1px solid var(--muted);
  border-radius: 6px;
  font-size: var(--micro-size);
  line-height: var(--micro-line);
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--crema);
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

.lp-pills label:hover span {
  border-color: var(--oro);
}

.lp-pills input:checked + span {
  background: var(--oro);
  border-color: var(--oro);
  color: var(--nero);
}

.lp-pills input:focus-visible + span {
  outline: 2px solid var(--oro);
  outline-offset: 3px;
}

.lp-btn--submit {
  align-self: flex-start;
  margin-top: 6px;
}

.lp-form-note,
.lp-form-alt,
.lp-form-status {
  font-size: 14px;
  line-height: 1.55;
  text-transform: none;
  color: var(--muted);
}

.lp-form-status {
  min-height: 1.5em;
  color: var(--oro);
}

.lp-form-alt {
  margin-top: 34px;
  padding-top: 26px;
  border-top: 1px solid var(--line);
}

.lp-form-alt a {
  color: var(--crema);
  border-bottom: 1px solid rgba(255, 234, 187, 0.4);
  transition: color 0.3s ease, border-color 0.3s ease;
}

.lp-form-alt a:hover {
  color: var(--oro);
  border-color: var(--oro);
}

.lp-signature {
  margin-top: clamp(80px, 10vw, 150px);
  padding-top: 28px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-wrap: wrap;
  gap: 6px 36px;
  font-size: var(--micro-size);
  line-height: var(--micro-line);
  letter-spacing: var(--micro-track);
  color: var(--muted);
}

.lp-signature .lp-signature-name {
  color: var(--crema);
}

/* ---------- Footer (nessun contatto sopra: serve aria sul wordmark) ---------- */
.lp-end .site-footer {
  margin-top: 0;
  padding-top: 75px;
}

/* cursore nativo nei campi del form */
@media (hover: hover) and (pointer: fine) {
  .lp-form input,
  .lp-form textarea { cursor: text; }
  .lp-pills label,
  .lp-pills input { cursor: pointer; }
}

/* =================================================
   RESPONSIVE
================================================= */

@media (max-width: 1100px) {
  .lp-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .lp-hero {
    justify-content: flex-end;
    padding-top: 130px;
  }

  .lp-hero-proof {
    letter-spacing: 0.1em;
  }

  .lp-hero-proof i { margin: 0 0.5em; }

  .lp-split,
  .lp-split--form {
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .lp-sticky { position: static; }

  .lp-projects-viewport { overflow-x: auto; scrollbar-width: none; }
  .lp-projects-viewport::-webkit-scrollbar { display: none; }
  .lp-project { flex-basis: 78vw; }

  .lp-row {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .lp-row .lp-text {
    grid-column: 2;
  }

  .lp-faq-a .lp-text { padding-right: 0; }

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

  .lp-callout { padding: 32px 24px; }

  .lp-end .site-footer { padding-top: 40px; }
}

@media (max-width: 640px) {
  .lp-grid--3,
  .lp-steps { grid-template-columns: 1fr; }

  .lp-cta-row { flex-direction: column; align-items: stretch; }
  .lp-cta-row .lp-btn { justify-content: space-between; }

  .lp-stats { flex-direction: column; gap: 28px; }

  .lp-btn--submit { align-self: stretch; justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}


/* =================================================
   SEZIONI CHIARE / SCURE + LABEL
================================================= */

.lp-label {
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: -0.01em;
  text-transform: none;
  color: rgba(255, 247, 229, 0.75);
}

.lp-inner > .lp-label {
  margin-bottom: clamp(24px, 3vw, 40px);
}

.lp-section--dark { background: var(--nero); }

.lp-section--light {
  background: var(--bianco);
  color: var(--nero);
}

.lp-section--light .lp-label { color: var(--nero); }

.lp-section--light .lp-h2,
.lp-section--light .lp-h2 strong,
.lp-section--light .lp-h3,
.lp-section--light .lp-h4,
.lp-section--light .lp-lead,
.lp-section--light .lp-closing,
.lp-section--light .lp-row-title,
.lp-section--light .lp-project-name,
.lp-section--light .lp-project-claim,
.lp-section--light .lp-callout-title,
.lp-section--light .lp-form-intro,
.lp-section--light .stat-label,
.lp-section--light .lp-signature-name { color: var(--nero); }

.lp-section--light .lp-h4,
.lp-section--light .lp-subhead,
.lp-section--light .lp-num,
.lp-section--light .lp-step-num,
.lp-section--light .lp-project-sector,
.lp-section--light .stat-num,
.lp-section--light .stat-plus,
.lp-section--light .lp-field label,
.lp-section--light .lp-field legend,
.lp-section--light .lp-form-status { color: var(--nero); }

.lp-section--light .lp-text { color: var(--nero); }

.lp-section--light .lp-item,
.lp-section--light .lp-rows,
.lp-section--light .lp-row,
.lp-section--light .lp-step,
.lp-section--light .lp-stats,
.lp-section--light .lp-signature,
.lp-section--light .lp-form-alt { border-color: rgba(6, 14, 19, 0.16); }

.lp-section--light .lp-step::before { background: var(--blu); }
.lp-section--light .lp-row:hover .lp-row-title { color: var(--nero); }

.lp-section--light .service-tag {
  border-color: rgba(6, 14, 19, 0.4);
  color: var(--nero);
}

.lp-section--light .btn-line,
.lp-section--light .lp-btn-line {
  color: var(--nero);
  border-bottom-color: rgba(6, 14, 19, 0.3);
}

.lp-section--light .lp-btn {
  background: var(--nero);
  border-color: var(--nero);
  color: var(--crema);
}

.lp-section--light .lp-btn:hover,
.lp-section--light .lp-btn:focus-visible {
  background: transparent;
  color: var(--nero);
}

.lp-section--light .lp-callout {
  background: rgba(0, 46, 72, 0.06);
  border-color: rgba(6, 14, 19, 0.16);
}

.lp-section--light .lp-field input[type="text"],
.lp-section--light .lp-field input[type="email"],
.lp-section--light .lp-field input[type="tel"],
.lp-section--light .lp-field textarea {
  color: var(--nero);
  border-bottom-color: rgba(6, 14, 19, 0.3);
}

.lp-section--light .lp-field input:focus,
.lp-section--light .lp-field textarea:focus { border-bottom-color: var(--blu); }

.lp-section--light .lp-field label span { color: rgba(6, 14, 19, 0.5); }

.lp-section--light .lp-pills span {
  border-color: rgba(6, 14, 19, 0.4);
  color: var(--nero);
}

.lp-section--light .lp-pills label:hover span { border-color: var(--nero); }

.lp-section--light .lp-pills input:checked + span {
  background: var(--nero);
  border-color: var(--nero);
  color: var(--crema);
}

.lp-section--light .lp-pills input:focus-visible + span { outline-color: var(--blu); }

.lp-section--light .lp-form-note,
.lp-section--light .lp-form-alt,
.lp-section--light .lp-signature { color: rgba(6, 14, 19, 0.6); }

.lp-section--light .lp-form-alt a {
  color: var(--nero);
  border-bottom-color: rgba(6, 14, 19, 0.35);
}

.lp-section--light .lp-form-alt a:hover {
  color: var(--blu);
  border-color: var(--blu);
}

/* nessun cursore personalizzato in questa pagina */
.cursor { display: none; }
@media (hover: hover) and (pointer: fine) {
  body { cursor: auto; }
  a, button, .lp-faq-q { cursor: pointer; }
}

/* vantaggi in card */
.lp-cards { gap: 20px; }
.lp-cards .lp-item {
  padding: 32px 30px 36px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(255, 247, 229, 0.04);
}
.lp-section--light .lp-cards .lp-item {
  border-color: rgba(6, 14, 19, 0.14);
  background: var(--bianco);
}
.lp-cards .lp-h4 { margin-bottom: 14px; }

/* footer scuro sotto il contatto chiaro */
.lp-end .site-footer { background: var(--nero); }

/* senza pin: scorrimento orizzontale nativo */
.lp-projects-viewport.is-native { overflow-x: auto; }

/* nessuna animazione o transizione in questa pagina */
*, *::before, *::after {
  animation: none !important;
  transition: none !important;
}
html.js .line-inner { transform: none !important; opacity: 1 !important; }
html.js [data-reveal] { opacity: 1 !important; transform: none !important; }
.lp-project-media:hover .project-media-inner { transform: none !important; }

/* ---------- Testo corrente: 18px, tracking -0.8px ---------- */
.lp-text,
.lp-text--l,
.lp-hero .lp-lead,
.lp-form-intro,
.lp-form-note,
.lp-form-alt,
.lp-faq-q,
.lp-field input,
.lp-field textarea {
  font-size: 18px;
  letter-spacing: -0.8px;
}
.lp-text,
.lp-text--l { line-height: 1.45; }
.lp-text strong { font-weight: 500; }

/* titoli: un solo colore, a capo naturale */
.lp-subhead,
.lp-h4 { color: var(--crema); }
.lp-h2,
.lp-hero-title { text-wrap: balance; }
.lp-hero-title { max-width: 10.5em; }
.lp-hero-title .line-wrap + .line-wrap { margin-top: 0; }
.lp-hero-title .lp-hero-eyebrow { display: block; }

/* nuovi blocchi */
.lp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lp-subhead--gap { margin-top: clamp(80px, 10vw, 140px); }
.lp-lead--wide { max-width: 760px; margin-bottom: clamp(32px, 4vw, 56px); }
.lp-list {
  list-style: none;
  max-width: 760px;
}
.lp-list li {
  text-transform: none;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  font-family: var(--font-body);
  font-size: 18px;
  letter-spacing: -0.8px;
}
.lp-list li:last-child { border-bottom: 1px solid var(--line); }
.lp-section--light .lp-list li { border-color: rgba(6, 14, 19, 0.16); color: var(--nero); }
.lp-callout .lp-label { margin-bottom: 14px; }
.lp-callout .lp-callout-title { margin-bottom: 20px; }
.lp-callout .lp-text + .lp-text { margin-top: 12px; }

@media (max-width: 900px) {
  .lp-grid--2 { grid-template-columns: 1fr; }
  .lp-hero-title { max-width: none; }
}

/* ---------- Foto hero ---------- */
.lp-hero-bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(32px, 5vw, 80px);
  margin-top: clamp(28px, 4vh, 48px);
}
.lp-hero-bottom .lp-hero-copy { margin-top: 0; flex: 0 1 680px; }
.lp-hero-photo {
  flex: 0 1 clamp(320px, 36vw, 520px);
  aspect-ratio: 2 / 1;
  border-radius: 10px;
  overflow: hidden;
}
.lp-hero-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 55% 28%;
}
@media (max-width: 1100px) {
  .lp-hero-bottom { flex-direction: column; align-items: flex-start; }
  .lp-hero-photo { flex: none; width: 100%; max-width: 640px; aspect-ratio: 3 / 2; }
}

/* ---------- Hero: foto in alto a destra, tagliata a sinistra ---------- */
.lp-hero-photo img { object-position: 78% 30%; }
@media (min-width: 1300px) {
  .lp-hero-photo {
    position: absolute;
    top: 0;
    right: 0;
    flex: none;
    width: clamp(260px, calc(min(100vw - 2 * var(--pad), var(--grid-max)) - 990px), 520px);
    aspect-ratio: 1 / 1.05;
  }
}

/* ---------- Testi su nero: bianco pieno, nessuna opacità ---------- */
.lp-hero .lp-text,
.lp-hero .lp-label,
.lp-hero-proof,
.lp-section--dark .lp-text,
.lp-section--dark .lp-lead,
.lp-section--dark .lp-label,
.lp-section--dark .lp-h2,
.lp-section--dark .lp-h3,
.lp-section--dark .lp-h4,
.lp-section--dark .lp-subhead,
.lp-section--dark .lp-closing,
.lp-section--dark .lp-row-title,
.lp-section--dark .lp-faq-q,
.lp-section--dark .lp-list li,
.lp-section--dark .stat-label,
.lp-section--dark .lp-btn--ghost,
.lp-hero .lp-btn--ghost { color: var(--bianco); opacity: 1; }

/* ---------- Card lavori: aria, link allineati in basso ---------- */
.lp-projects { align-items: stretch; }
.lp-project {
  display: flex;
  flex-direction: column;
}
.lp-project-head {
  gap: 14px;
  margin-top: 30px;
  margin-bottom: 18px;
}
.lp-project-sector {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.4px;
  text-transform: none;
  color: var(--nero);
}
.lp-project .lp-text { margin: 0; }
.lp-project-link {
  align-self: flex-start;
  margin-top: auto;
  padding-top: 32px;
}

/* ---------- Recensioni ---------- */
.lp-review { display: flex; flex-direction: column; gap: 20px; margin: 0; }
.lp-stars { font-size: 18px; letter-spacing: 3px; color: var(--oro); line-height: 1; }
.lp-review blockquote { margin: 0; flex: 1; }
.lp-review figcaption { display: flex; flex-direction: column; gap: 4px; }
.lp-review-name { font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-weight: 600; font-size: 20px; letter-spacing: -0.02em; text-transform: none; color: var(--bianco); }
.lp-review-meta { font-family: var(--font-body); font-size: 16px; letter-spacing: -0.4px; color: var(--bianco); }

/* H1 su nero: bianco pieno */
.lp-hero-title,
.lp-hero-title .line-inner { color: var(--bianco); }
.lp-section--dark .lp-faq-item h3 { color: var(--bianco); }
.lp-review-meta { text-transform: none; }

.lp-review-total {
  margin-top: clamp(48px, 6vw, 88px);
  margin-bottom: 28px;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: var(--fs-xl);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
  text-transform: none;
  color: var(--bianco);
}
.lp-review-total strong { font-weight: 700; }

/* ---------- Lista servizio a destra del titolo ---------- */
.lp-subhead--top { margin-top: 0; }
.lp-rows--stack { margin-top: 0; }
.lp-rows--stack .lp-row {
  display: block;
  padding: 24px 0;
}
.lp-rows--stack .lp-num { margin-bottom: 8px; }
.lp-rows--stack .lp-row-title {
  font-size: var(--fs-h4);
  line-height: 1.2;
  margin-bottom: 8px;
}
.lp-rows--stack .lp-text { max-width: 560px; }

/* ---------- Prova: foto di sfondo nell'hero (Andreas Schwarzer) ---------- */
.lp-hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.lp-hero-bg img {
  position: absolute;
  top: 0;
  right: 0;
  width: 72%;
  height: 100%;
  object-fit: cover;
  object-position: 70% 40%;
}
.lp-hero-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, var(--nero) 22%, rgba(6, 14, 19, 0.55) 52%, rgba(6, 14, 19, 0.15) 100%),
    linear-gradient(0deg, var(--nero) 0%, rgba(6, 14, 19, 0) 28%);
}
.lp-hero-photo { display: none !important; }
@media (max-width: 900px) {
  .lp-hero-bg img { width: 100%; opacity: 0.55; }
}

/* ---------- Scambio temi: recensioni chiare, portfolio scuro ---------- */
.lp-section--dark .lp-project-sector,
.lp-section--dark .lp-project-name { color: var(--bianco); }
.lp-section--light .lp-review-name,
.lp-section--light .lp-review-meta,
.lp-section--light .lp-review-total { color: var(--nero); }
.lp-section--light .lp-stars { color: #D69E00; }

/* ---------- Revisione: hero, header, box, subtext ---------- */
.lp-hero-bg img { width: 60%; object-position: 62% 40%; }
.lp-hero-bg::after {
  background:
    linear-gradient(90deg, var(--nero) 36%, rgba(6, 14, 19, 0.6) 58%, rgba(6, 14, 19, 0.1) 100%),
    linear-gradient(0deg, var(--nero) 0%, rgba(6, 14, 19, 0) 28%);
}
.lp-hero-bottom { margin-top: 16px; }
.lp-hero-bottom .lp-hero-copy { gap: 16px; }

.site-header .header-cta {
  padding: 8px 14px;
  font-size: 12px;
  line-height: 1.2;
  border-radius: 6px;
}

/* niente box bianchi sugli sfondi chiari */
.lp-section--light .lp-cards .lp-item {
  background: none;
  border: 0;
  border-top: 1px solid rgba(6, 14, 19, 0.2);
  border-radius: 0;
  padding: 26px 0 0;
}

/* subtext di sezione: stesso stile e dimensione ovunque (Inter 18px) */
.lp-lead,
.lp-lead--wide,
.lp-hero .lp-lead {
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -0.8px;
}
.lp-hero-bg img { width: 62%; right: -14%; object-position: 55% 40%; }
@media (max-width: 900px) { .lp-hero-bg img { width: 100%; right: 0; } }

.lp-section--light { background: var(--bianco); }
.lp-section--light .lp-callout { background: rgba(6, 14, 19, 0.04); }

/* ---------- Hero: blocco centrato in verticale, numeri distribuiti ---------- */
.lp-hero { justify-content: space-between; }
.lp-hero-inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.lp-hero-stats {
  position: relative;
  z-index: 1;
  list-style: none;
  width: 100%;
  max-width: var(--grid-max);
  margin: clamp(32px, 5vh, 64px) auto 0;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
}
.lp-hero-stats li {
  display: flex;
  align-items: center;
  gap: 16px;
}
.lp-hero-stat-num {
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: clamp(48px, 5.6vw, 84px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--bianco);
}
.lp-hero-stat-label {
  display: flex;
  flex-direction: column;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: 0;
  text-transform: uppercase;
  color: var(--bianco);
}
@media (max-width: 900px) {
  .lp-hero-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .lp-hero-stat-num { font-size: 44px; }
  .lp-hero-stat-label { font-size: 13px; }
}
.lp-hero-stat-num { font-size: clamp(40px, 4.4vw, 64px); }
.lp-hero-stat-label span { white-space: nowrap; }
.lp-hero-stats { margin-top: clamp(24px, 4vh, 44px); padding-top: 22px; }
@media (max-width: 900px) { .lp-hero-stat-num { font-size: 40px; } }
.lp-hero { padding: clamp(100px, 12vh, 130px) var(--pad) clamp(28px, 4.5vh, 48px); }

/* numeri hero: centrati tra la linea e il bordo basso, "+" piccolo prima del numero */
.lp-hero { padding-bottom: 0; }
.lp-hero-stats {
  margin-top: clamp(24px, 4vh, 44px);
  padding-top: 0;
  min-height: clamp(104px, 13vh, 132px);
  align-items: center;
}
.lp-hero-stat-num { font-size: clamp(36px, 3.9vw, 56px); display: inline-flex; align-items: flex-start; }
.lp-plus {
  font-size: 0.45em;
  line-height: 1;
  margin: 0.18em 0.08em 0 0;
  letter-spacing: 0;
}
@media (max-width: 900px) { .lp-hero-stat-num { font-size: 36px; } .lp-hero-stats { min-height: 0; padding: 22px 0 28px; } }

/* header CTA in minuscolo, sottotesto hero 21px */
.site-header .header-cta { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 600; }
.lp-hero .lp-text--l { font-size: 21px; line-height: 1.4; }
.lp-hero-bottom .lp-hero-copy { flex-basis: 760px; max-width: 760px; }

/* ---------- Il problema ---------- */
#problema .lp-h2 { max-width: 14em; margin-bottom: 28px; }
.lp-problem-lead { max-width: 720px; }
.lp-problem-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px clamp(28px, 5vw, 80px);
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid rgba(6, 14, 19, 0.16);
}
.lp-problem-icon {
  display: block;
  width: 28px;
  height: 28px;
  margin-bottom: 20px;
  font-size: 28px;
  line-height: 1;
  color: var(--nero);
}
.lp-problem-title {
  margin-bottom: 10px;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: var(--fs-h4);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--nero);
}
.lp-problem-item .lp-text { max-width: 520px; }
@media (max-width: 900px) { .lp-problem-grid { grid-template-columns: 1fr; } }

/* ---------- Il problema: voci a destra, una sotto l'altra ---------- */
.lp-problem-split { align-items: start; }
.lp-problem-split .lp-problem-intro { max-width: 640px; }
#problema .lp-h2 { margin-bottom: 28px; }
.lp-problem-list { display: flex; flex-direction: column; }
.lp-problem-item {
  padding: 32px 0;
  border-top: 1px solid rgba(6, 14, 19, 0.16);
}
.lp-problem-item:first-child { padding-top: 0; border-top: 0; }
.lp-problem-grid { display: none; }

/* ---------- La soluzione ---------- */
.lp-solution-grid { margin-top: clamp(56px, 7vw, 100px); }
.lp-item-title {
  margin-bottom: 12px;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: var(--fs-h4);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--bianco);
}

/* soluzione: linea sotto l'intro e tre colonne con numeri grandi */
.lp-solution-grid {
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid var(--line);
}
.lp-solution-grid .lp-item { border-top: 0; padding-top: 0; }
.lp-solution-grid .lp-num {
  margin-bottom: 28px;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: clamp(40px, 4vw, 56px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--bianco);
}
#soluzione .lp-body { padding-top: 0.5em; }

/* ---------- Recensioni: nuovo layout ---------- */
#recensioni .lp-h2 { max-width: 14em; margin-bottom: 36px; }
.lp-review-total {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin: 0;
  font-family: var(--font-body);
  text-transform: none;
}
.lp-review-total strong {
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: clamp(48px, 5vw, 72px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--nero);
}
.lp-review-total span { font-size: 18px; letter-spacing: -0.8px; color: var(--nero); }
.lp-reviews {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px clamp(28px, 4vw, 64px);
  margin-top: clamp(36px, 4.5vw, 56px);
  padding-top: clamp(28px, 3.5vw, 44px);
  border-top: 1px solid rgba(6, 14, 19, 0.16);
}
.lp-reviews .lp-review { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.lp-section--light .lp-stars { color: var(--nero); font-size: 16px; letter-spacing: 4px; }
.lp-reviews figcaption { display: flex; flex-direction: column; gap: 6px; }
.lp-section--light .lp-review-meta { color: var(--nero); opacity: 1; }
.lp-reviews blockquote { margin: 4px 0 0; }
@media (max-width: 900px) { .lp-reviews { grid-template-columns: 1fr; } }

/* ---------- A chi mi rivolgo ---------- */
#destinatari .lp-h2 { max-width: 18em; margin-bottom: 28px; }
.lp-audience-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 40px clamp(24px, 3.4vw, 56px);
  margin-top: clamp(36px, 4.5vw, 56px);
}
.lp-audience-item {
  padding-top: 24px;
  border-top: 1px solid rgba(6, 14, 19, 0.16);
}
.lp-audience-item .lp-num { margin-bottom: 18px; color: var(--nero); }
.lp-audience-item .lp-problem-title { margin-bottom: 14px; }
.lp-audience-goals { margin-top: 22px; }
.lp-audience-more {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: 32px;
  border-top: 1px solid rgba(6, 14, 19, 0.16);
  color: var(--nero);
}
.lp-audience-more-text { display: block; max-width: 900px; }
.lp-audience-more .lp-problem-title { margin-bottom: 10px; }
.lp-audience-more .btn-arrow { flex: none; width: 22px; height: 22px; stroke: var(--nero); }
@media (max-width: 900px) { .lp-audience-grid { grid-template-columns: 1fr; } }
.lp-audience-item { display: flex; flex-direction: column; }
.lp-audience-goals { margin-top: auto; padding-top: 22px; }

/* ---------- Il metodo ---------- */
#metodo .lp-h2 { max-width: 18em; margin-bottom: 28px; }
.lp-method-lead { max-width: 760px; }
.lp-method-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 40px clamp(24px, 3vw, 48px);
  margin-top: clamp(40px, 5vw, 64px);
  padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid var(--line);
}
.lp-method-grid .lp-item { border-top: 0; padding-top: 0; }
.lp-method-grid .lp-num {
  margin-bottom: 28px;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: clamp(40px, 4vw, 56px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--bianco);
}
@media (max-width: 1100px) { .lp-method-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .lp-method-grid { grid-template-columns: 1fr; } }

/* ---------- Prezzi ---------- */
.lp-price-top { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: start; }
.lp-price-top .lp-h2 { max-width: 9em; margin: 0; }
.lp-price-top .lp-body { padding-top: 0.5em; }
.lp-price-top .lp-text + .lp-text { margin-top: 20px; }
.lp-price-top strong { font-weight: 500; }
.lp-price-bottom {
  display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px);
  margin-top: clamp(40px, 5vw, 64px); padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid rgba(6, 14, 19, 0.16);
}
.lp-price-claim {
  margin: 0 0 12px; max-width: 12em;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: var(--fs-h3); font-weight: 400; line-height: 1.1; letter-spacing: -0.02em; color: var(--nero);
}
.lp-price-note { color: var(--nero); }
.lp-checks { list-style: none; margin: 0 0 32px; padding: 0; display: grid; gap: 16px; }
.lp-checks li { display: flex; gap: 14px; align-items: flex-start; font-size: var(--fs-body); line-height: 1.4; letter-spacing: -0.8px; color: var(--nero); }
.lp-check { flex: none; width: 20px; height: 20px; margin-top: 2px; fill: none; stroke: var(--nero); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 900px) { .lp-price-top, .lp-price-bottom { grid-template-columns: 1fr; } }
.lp-price-claim { text-transform: none; }
.lp-checks li, .lp-checks li span { font-family: 'Inter', system-ui, sans-serif; text-transform: none; font-weight: 400; }

/* ---------- Recensioni: testata + card bianche ---------- */
.lp-rev-head { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: end; }
.lp-rev-head .lp-h2 { max-width: 12em; }
.lp-rev-side { display: flex; flex-direction: column; align-items: flex-end; gap: 20px; }
.lp-rev-head .lp-review-total { margin: 0; justify-content: flex-end; }
.lp-platforms { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }
.lp-platforms a { display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border: 1px solid rgba(6,14,19,.16); border-radius: 6px; background: var(--bianco); color: var(--nero); text-decoration: none; }
.lp-platforms a:hover, .lp-platforms a:focus-visible { border-color: var(--nero); }
.pf { display: inline-flex; align-items: center; gap: 6px; font-family: 'Inter', system-ui, sans-serif; font-size: 18px; font-weight: 500; letter-spacing: -0.04em; line-height: 1; }
.pf-google i { font-style: normal; font-weight: 500; }
.pf-google i:nth-child(1), .pf-google i:nth-child(4) { color: #4285f4; }
.pf-google i:nth-child(2), .pf-google i:nth-child(6) { color: #ea4335; }
.pf-google i:nth-child(3) { color: #fbbc05; }
.pf-google i:nth-child(5) { color: #34a853; }
.pf-trust svg { width: 20px; height: 20px; fill: #00b67a; }
.pf-99 { color: var(--nero); font-weight: 700; }
.lp-reviews { margin-top: clamp(40px, 5vw, 64px); }
.lp-reviews .lp-review { padding: 32px; background: var(--bianco); border: 1px solid rgba(6,14,19,.14); border-radius: 12px; }
@media (max-width: 900px) { .lp-rev-head { grid-template-columns: 1fr; gap: 28px; } .lp-rev-side, .lp-platforms { align-items: flex-start; justify-content: flex-start; } .lp-rev-head .lp-review-total { justify-content: flex-start; } }
.pf, .pf i { text-transform: none !important; letter-spacing: -0.04em; }

/* ---------- Card recensione (stile riferimento) ---------- */
#recensioni.lp-section--light { background: rgba(6,14,19,.08); }
.lp-reviews { gap: 20px; }
.lp-reviews .lp-review {
  gap: 0; min-height: 440px; padding: 28px; border: 0; border-radius: 28px; background: var(--bianco);
}
.lp-reviews .lp-stars { order: 0; margin: 0 0 20px; font-size: 18px; letter-spacing: 3px; color: #e8832a; }
.lp-reviews blockquote.lp-text {
  order: 1; margin: 0; flex: 1;
  font-family: 'Inter', system-ui, sans-serif; font-size: 22px; font-weight: 500; line-height: 1.25; letter-spacing: -0.03em; color: var(--nero);
}
.lp-reviews figcaption { order: 2; margin-top: 32px; gap: 4px; }
.lp-avatar {
  display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 12px;
  border-radius: 50%; background: var(--nero); color: var(--bianco);
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-size: 15px; letter-spacing: 0;
}
.lp-reviews .lp-review-name { font-family: 'Inter', system-ui, sans-serif; font-size: 18px; font-weight: 500; letter-spacing: -0.03em; }
.lp-reviews .lp-review-meta { font-size: 16px; color: #6b6b6b; }
.lp-section--light #recensioni .lp-review-meta { color: #6b6b6b; }

/* =====================================================
   Pagine Consulenza SEO e Chi sono
===================================================== */
.lp-method-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lp-method-grid--plain .lp-num { display: none; }
.lp-section--light .lp-method-grid { border-top-color: rgba(6, 14, 19, 0.16); }
.lp-section--light .lp-method-grid .lp-num { color: var(--nero); }
.lp-method-grid .lp-item-title a { color: inherit; text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
@media (max-width: 1100px) { .lp-method-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 700px) { .lp-method-grid--3 { grid-template-columns: 1fr; } }
.lp-section--light .lp-method-lead, .lp-section--light .lp-method-lead a { color: var(--nero); }
.lp-closing a, .lp-proof a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.lp-method-grid--plain { margin-top: clamp(32px, 4vw, 56px); }
.lp-split + .lp-method-grid { margin-top: clamp(40px, 5vw, 64px); }

.seo-hero .lp-hero-title { max-width: 13em; }
.seo-hero .lp-hero-copy .lp-text + .lp-text { margin-top: 12px; }

.lp-proof { margin-top: clamp(48px, 6vw, 80px); padding-top: 32px; border-top: 1px solid var(--line); max-width: 760px; }
.lp-proof .lp-label { margin-bottom: 16px; }
.lp-proof .lp-text + .lp-text { margin-top: 12px; }
.lp-proof-links { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 28px; }

.lp-price-close { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px 48px; margin-top: clamp(40px, 5vw, 64px); }
.lp-price-close .lp-text { max-width: 640px; margin: 0; }

/* ---------- Chi sono: hero chiara ---------- */
.cs-light .site-header, .cs-light .main-nav a { color: var(--nero); }
.cs-light .logo img { filter: invert(1); }
.cs-light .menu-toggle span { background: var(--nero); }
.cs-light.menu-open .menu-toggle span { background: var(--nero); }
.cs-hero {
  position: relative; z-index: 1; background: var(--bianco); color: var(--nero);
  padding: clamp(110px, 14vh, 150px) var(--pad) clamp(28px, 4.5vh, 48px);
}
.cs-hero-inner {
  max-width: var(--grid-max); margin: 0 auto;
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: clamp(32px, 5vw, 80px); align-items: center;
}
.cs-hero .lp-label { margin-bottom: 20px; color: var(--nero); }
.cs-h1 {
  margin: 0 0 28px; max-width: 10.5em;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-weight: 700;
  font-size: var(--fs-h1); line-height: 1.05; letter-spacing: -0.06em; text-transform: none; text-wrap: balance; color: var(--nero);
}
.cs-hero .lp-text { color: var(--nero); max-width: 620px; }
.cs-hero .lp-text + .lp-text { margin-top: 12px; }
.cs-hero strong { font-weight: 500; }
.cs-trust { margin: 24px 0 0; font-family: 'Inter', system-ui, sans-serif; font-size: 18px; letter-spacing: -0.8px; color: var(--nero); text-transform: none; }
.cs-hero-photo { margin: 0; border-radius: 28px; overflow: hidden; aspect-ratio: 4 / 3.4; background: #e9e9e9; }
.cs-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 35%; display: block; }
.cs-stats { margin-top: clamp(32px, 5vh, 56px); border-top-color: rgba(6, 14, 19, 0.16); justify-content: space-between; }
.cs-stats .lp-hero-stat-num, .cs-stats .lp-hero-stat-label { color: var(--nero); }
.cs-stats .lp-plus { font-size: 0.5em; }
@media (max-width: 900px) {
  .cs-hero-inner { grid-template-columns: 1fr; }
  .cs-stats { display: grid; grid-template-columns: 1fr; }
}

.cs-pull {
  margin: clamp(48px, 6vw, 88px) 0 0; max-width: 14em;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-weight: 400;
  font-size: clamp(32px, 4.4vw, 64px); line-height: 1.05; letter-spacing: -0.03em; color: var(--bianco); text-transform: none;
}

.cs-projects { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: clamp(40px, 5vw, 64px); }
.cs-projects .lp-project { flex: none; }
.lp-section--light .lp-project-sector { color: var(--nero); }
.cs-ph { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: #ececec; color: var(--nero); font-family: 'PP Formula', 'Inter', sans-serif; font-size: 20px; text-align: center; padding: 16px; }
.lp-section--light .cs-projects + .lp-cta-center { margin-top: 48px; }
@media (max-width: 1100px) { .cs-projects { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .cs-projects { grid-template-columns: 1fr; } }

.lp-reviews--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 900px) { .lp-reviews--2 { grid-template-columns: 1fr; } }
.cs-cta .lp-h2 { max-width: 12em; }
.cs-cta .lp-cta-row { margin-top: 32px; }
.cs-mail { margin-top: 28px; }
.cs-mail a { color: var(--bianco); text-decoration: underline; text-underline-offset: 4px; }
.lp-section--light .lp-method-grid .lp-item-title, .lp-section--light .lp-method-grid .lp-item-title a { color: var(--nero); }
.seo-hero { padding-bottom: clamp(36px, 6vh, 64px); }
.cs-ph { background: #101c24; color: var(--bianco); }

/* ---------- Carosello recensioni ---------- */
.lp-carousel { margin-top: clamp(40px, 5vw, 64px); }
.lp-carousel .lp-track {
  display: flex; gap: 20px; margin-top: 0; overflow-x: auto; scroll-snap-type: x mandatory;
  scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.lp-carousel .lp-track::-webkit-scrollbar { display: none; }
.lp-carousel .lp-track .lp-review { flex: 0 0 calc((100% - 40px) / 3); scroll-snap-align: start; }
.lp-review-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.lp-reviews .lp-review-top .lp-stars { margin: 0; }
.lp-review-top .pf { font-size: 16px; }
.lp-review-top .pf-trust svg { width: 18px; height: 18px; }
.lp-carousel-nav { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; }
.lp-arrow {
  display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px;
  border: 1px solid rgba(6,14,19,.2); border-radius: 50%; background: var(--bianco); color: var(--nero); cursor: pointer;
}
.lp-arrow svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.lp-arrow--prev svg { transform: scaleX(-1); }
.lp-arrow:hover:not(:disabled) { background: var(--nero); color: var(--bianco); border-color: var(--nero); }
.lp-arrow:disabled { opacity: .35; cursor: default; }
@media (max-width: 1100px) { .lp-carousel .lp-track .lp-review { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 700px) { .lp-carousel .lp-track .lp-review { flex-basis: 86%; } }

/* ---------- Header: menu a tendina Servizi ---------- */
.nav-dd { position: relative; }
.nav-sub { display: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); padding-top: 16px; z-index: 60; }
.nav-dd:hover .nav-sub, .nav-dd:focus-within .nav-sub { display: block; }
.nav-sub::before { content: ""; position: absolute; left: 0; right: 0; top: 16px; bottom: 0; background: var(--bianco); border-radius: 16px; box-shadow: 0 12px 40px rgba(0,0,0,.18); }
.main-nav .nav-sub a { position: relative; display: block; overflow: visible; white-space: nowrap; margin: 6px; padding: 12px 16px; border-radius: 10px; color: var(--nero); }
.main-nav .nav-sub a:hover, .main-nav .nav-sub a:focus-visible { background: rgba(6,14,19,.08); }
.mobile-nav a.mobile-sub { font-size: clamp(20px, 5vw, 26px); opacity: .6; margin-top: -14px; }

/* =================================================
   GRIGLIA A 12 COLONNE (pagine interne)
================================================= */
:root { --grid-max: 1500px; --gutter: clamp(16px, 2vw, 32px); }

.lp-inner {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  max-width: var(--grid-max);
}
.lp-inner > * { grid-column: 1 / -1; min-width: 0; }

.lp-split {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  row-gap: clamp(40px, 6vw, 80px);
}
.lp-split > :first-child { grid-column: 1 / span 7; }
.lp-split > :last-child { grid-column: 8 / span 5; }
.lp-split > :only-child { grid-column: 1 / -1; }

/* ---------- Hero: stessa impostazione su tutte le pagine ----------
   testo (H1 + copy) sulle colonne 1–6, foto sulle colonne 7–12 */
.hero-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--gutter);
  align-items: center;
  width: 100%;
  max-width: var(--grid-max);
  margin: 0 auto;
}
.hero-copy { grid-column: 1 / span 6; min-width: 0; }
.hero-photo {
  grid-column: 7 / span 6;
  margin: 0;
  border-radius: 28px;
  overflow: hidden;
  aspect-ratio: 4 / 3.4;
  background: #101c24;
}
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 35%; display: block; }

.hero-copy .lp-hero-title,
.hero-copy .cs-h1,
.seo-hero .hero-copy .lp-hero-title { max-width: none; }
.hero-copy .lp-hero-copy { max-width: none; margin-top: clamp(24px, 3vh, 40px); }
.hero-copy .lp-hero-eyebrow { margin-bottom: 28px; }

@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; row-gap: 32px; }
  .hero-copy, .hero-photo { grid-column: 1 / -1; }
  .lp-inner, .lp-split { grid-template-columns: 1fr; }
  .lp-inner > *, .lp-split > :first-child, .lp-split > :last-child { grid-column: 1 / -1; }
}
.lp-split--form > :first-child { grid-column: 1 / span 6; }
.lp-split--form > :last-child { grid-column: 7 / span 6; }
@media (max-width: 900px) { .lp-split--form > :first-child, .lp-split--form > :last-child { grid-column: 1 / -1; } }

/* =================================================
   PROGETTI + CONTATTI
================================================= */
[hidden] { display: none !important; }

.pj-filters { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: clamp(36px, 5vw, 64px); }
.pj-filter {
  appearance: none; cursor: pointer;
  padding: 10px 20px; border: 1px solid var(--nero); border-radius: 999px;
  background: transparent; color: var(--nero);
  font-family: 'Inter', system-ui, sans-serif; font-size: 16px; letter-spacing: -0.04em; text-transform: none;
}
.pj-filter:hover { background: rgba(6,14,19,.08); }
.pj-filter.is-active { background: var(--nero); color: var(--bianco); }

.pj-grid {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(48px, 6vw, 96px) var(--gutter);
}
.pj-card { grid-column: span 6; flex: none; min-width: 0; display: flex; flex-direction: column; }
.pj-card .lp-project-media { aspect-ratio: 4 / 3; }
.pj-card .project-media-inner img { object-fit: cover; }
.pj-sector { font-family: 'Inter', system-ui, sans-serif; font-size: 16px; letter-spacing: -0.04em; text-transform: none; color: var(--nero); }
.pj-desc { margin-top: 14px; max-width: 34em; }
.pj-link { margin-top: 18px; align-self: flex-start; }
.lp-section--light .pj-link { color: var(--nero); }
.lp-section--light .lp-project-sector { color: var(--nero); }

.pj-cta { display: flex; align-items: flex-end; justify-content: flex-start; }

.ct-info > * + * { margin-top: 28px; }
.ct-list { display: grid; gap: 22px; }
.ct-list dt { font-size: var(--micro-size); line-height: var(--micro-line); letter-spacing: var(--micro-track); text-transform: uppercase; color: var(--nero); opacity: .6; margin-bottom: 4px; }
.ct-list dd { font-family: 'Inter', system-ui, sans-serif; font-size: 18px; letter-spacing: -0.8px; text-transform: none; color: var(--nero); }
.ct-list a, .ct-social a { color: var(--nero); text-decoration: underline; text-underline-offset: 4px; }
.ct-social { font-family: 'Inter', system-ui, sans-serif; font-size: 18px; letter-spacing: -0.8px; text-transform: none; color: var(--nero); }
.ct-social span { display: block; font-family: inherit; font-size: var(--micro-size); letter-spacing: var(--micro-track); text-transform: uppercase; opacity: .6; margin-bottom: 4px; }
.ct-form-lead { margin: 10px 0 26px; }
.ct-consent label { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; text-transform: none; letter-spacing: -0.04em; font-family: 'Inter', system-ui, sans-serif; font-size: 16px; line-height: 1.4; color: var(--nero); }
.ct-consent input { flex: none; width: 20px; height: 20px; margin-top: 1px; accent-color: var(--nero); }
@media (max-width: 900px) { .pj-card { grid-column: 1 / -1; } }
.lp-field.ct-consent label { display: flex; font-size: 16px; letter-spacing: -0.04em; text-transform: none; color: var(--nero); }
.lp-field.ct-consent label span { font-size: 16px; letter-spacing: -0.04em; text-transform: none; color: var(--nero); opacity: 1; }

/* ---------- Hero interne: scure, nessuno sfondo (solo il nero Fenixo) ---------- */
.lp-hero, .cs-hero {
  position: relative; overflow: hidden;
  background: var(--nero);
  color: var(--crema);
}
.lp-hero::before, .lp-hero::after, .cs-hero::before, .cs-hero::after { content: none; }
.cs-hero-inner { position: relative; z-index: 1; }
.cs-hero .lp-label { color: var(--crema); }
.cs-h1 { color: var(--oro); }
.cs-hero .lp-text, .cs-trust { color: var(--crema); }
.cs-stats { border-top-color: rgba(255, 247, 229, .18); }
.cs-stats .lp-hero-stat-num { color: var(--oro); }
.cs-stats .lp-hero-stat-label { color: var(--crema); }
.cs-hero-photo, .hero-photo { background: #101c24; }

/* ---------- Pagina Branding ---------- */
.br-kicker { display: block; margin-bottom: 28px; color: var(--crema); }
.lp-split--faq > :first-child { grid-column: 1 / span 5; }
.lp-split--faq > :last-child { grid-column: 6 / span 7; }
@media (max-width: 900px) { .lp-split--faq > :first-child, .lp-split--faq > :last-child { grid-column: 1 / -1; } }
.br-three, .br-services { margin-top: clamp(40px, 5vw, 72px); }
.br-services { gap: clamp(40px, 5vw, 72px) var(--gutter); }
@media (max-width: 700px) { .lp-grid--2 { grid-template-columns: 1fr; } }
.br-projects { margin-top: clamp(40px, 5vw, 64px); }
.br-cta .lp-text + .lp-text { margin-top: 14px; }
.br-cta .lp-cta-row { margin-top: 32px; }
/* FAQ su sfondo chiaro */
.lp-section--light .lp-faq, .lp-section--light .lp-faq-item { border-color: rgba(6, 14, 19, .16); }
.lp-section--light .lp-faq-q, .lp-section--light .lp-faq-item h3, .lp-section--light .lp-faq-q:hover, .lp-section--light .lp-faq-q[aria-expanded="true"] { color: var(--nero); }
.lp-section--light .lp-faq-a .lp-text { color: var(--nero); }

/* ---------- Card progetti: stesso stile ovunque (come Realizzazione siti web) ---------- */
.lp-project .lp-text { font-family: var(--font-body); font-size: 16px; line-height: 1.5; letter-spacing: -0.4px; }
.lp-section--light .lp-project .lp-text { color: var(--nero); }
.pj-card .lp-project-media { aspect-ratio: 4 / 3; }


/* Progetti: hero compatta, solo label e titolo */
.pj-hero { min-height: 0; justify-content: flex-start; padding-bottom: clamp(40px, 6vh, 72px); }

/* Contatti: mappa nera a tutta larghezza */
.ct-map { position: relative; width: 100%; height: clamp(360px, 52vh, 560px); background: var(--nero); overflow: hidden; }
.ct-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1) invert(1) contrast(1.05) brightness(.9); }

/* Progetti e Contatti: pagina tutta scura */
.lp-section--dark .pj-filter { border-color: var(--bianco); color: var(--bianco); }
.lp-section--dark .pj-filter:hover { background: rgba(255,255,255,.12); }
.lp-section--dark .pj-filter.is-active { background: var(--bianco); color: var(--nero); }
.lp-section--dark .pj-sector, .lp-section--dark .lp-project-sector { color: var(--bianco); }
.lp-section--dark .ct-list dt, .lp-section--dark .ct-list dd, .lp-section--dark .ct-list a,
.lp-section--dark .ct-social, .lp-section--dark .ct-social a, .lp-section--dark .ct-social span { color: var(--bianco); }
.lp-section--dark .lp-field.ct-consent label, .lp-section--dark .lp-field.ct-consent label span { color: var(--bianco); }
.lp-section--dark .ct-consent input { accent-color: var(--bianco); }


/* Tendina Servizi: più respiro, icone, Inter minuscolo (vince sul blocco precedente) */
.nav-sub { min-width: 290px; }
.main-nav .nav-sub a {
  display: flex; align-items: center; gap: 14px;
  margin: 10px; padding: 16px 20px; border-radius: 12px;
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-size: 16px; font-weight: 400; letter-spacing: -0.02em; line-height: 1.2; text-transform: none;
}
.main-nav .nav-sub a + a { margin-top: 0; }
.main-nav .nav-sub a i { flex: none; font-size: 22px; line-height: 1; }


/* =================================================================
   PAGINE INTERNE — solo due colori: Nero Fenixo #060E13 e Bianco Fenixo #FFFBF1
================================================================= */
:root {
  --nero: #060E13;
  --bianco: #FFFBF1;
  --crema: #FFFBF1;
  --oro: #FFFBF1;       /* niente champagne nelle pagine interne */
  --hdr: 96px;          /* altezza header */
  --gap-hero-top: 200px;   /* vuoto sotto l'header */
  --gap-hero-bottom: 170px;/* vuoto sotto l'H1 */
  --gap-label: 24px;       /* distanza label → titolo, ovunque */
}
body, main#top, .lp-flow, .lp-hero, .lp-section--dark { background: var(--nero); }
.lp-section--light { background: var(--bianco); color: var(--nero); }
.lp-hero::before, .lp-hero::after { content: none; }

/* ---------- Header (Figma) ---------- */
.site-header { padding: 28px var(--pad); height: var(--hdr); box-sizing: border-box; color: var(--bianco); }
@media (min-width: 901px) {
  .main-nav { position: absolute; inset: 0 var(--pad); margin: 0; display: flex; align-items: center; justify-content: center; gap: 45px; pointer-events: none; }
  .main-nav > * { pointer-events: auto; }
  .main-nav .nav-cta { position: absolute; right: 0; top: 50%; transform: translateY(-50%); margin: 0; }
}
.main-nav a {
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif;
  font-size: 14px; font-weight: 700; line-height: 1.18; letter-spacing: -0.02em; text-transform: none;
  color: var(--bianco);
}
.main-nav .nav-sub a { color: var(--nero); }
.nav-cta {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 16px; border: 0; border-radius: 6px;
  background: var(--bianco); color: var(--nero);
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-size: 12px; font-weight: 700; line-height: 1.18; letter-spacing: -0.03em; text-transform: none;
}
.nav-cta i { font-size: 16px; line-height: 1; }
.nav-cta:hover { background: transparent; color: var(--bianco); box-shadow: inset 0 0 0 1px var(--bianco); }
.mobile-cta { background: var(--nero); color: var(--bianco); border-color: var(--nero); }

/* ---------- Label: stessa distanza dal titolo ovunque ---------- */
.lp-section .lp-label { margin-bottom: var(--gap-label); }
.lp-section .lp-inner > .lp-label { margin-bottom: var(--gap-label); }
.lp-h2 .line-wrap { padding-top: 0; }

/* ---------- Hero (Figma): 200 sotto header · H1 + foto · 170 · label | testo · numeri ---------- */
.lp-hero.pg {
  min-height: 0; display: block;
  padding: calc(var(--hdr) + var(--gap-hero-top)) var(--pad) clamp(80px, 10vh, 120px);
}
.pg-grid {
  display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter);
  width: 100%; max-width: var(--grid-max); margin: 0 auto; align-items: start;
}
.pg-h1 {
  grid-column: 1 / span 8; grid-row: 1;
  margin: 0; font-size: var(--fs-h1); font-weight: 700; line-height: 1.05; letter-spacing: -0.06em; text-transform: none; color: var(--bianco);
}
.pg-photo { grid-column: 9 / span 4; grid-row: 1 / span 2; margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: #0c1a22; }
.pg-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 30%; display: block; }
.pg-label { grid-column: 1 / span 2; grid-row: 2; margin-top: var(--gap-hero-bottom); margin-bottom: 0; color: var(--bianco); }
.pg-body { grid-column: 3 / span 6; grid-row: 2; margin-top: var(--gap-hero-bottom); }
.pg-body .lp-text + .lp-text, .pg-body .lp-text + .cs-trust { margin-top: 16px; }
.pg-body .lp-cta-row { margin-top: 32px; }
.pg-stats { grid-column: 3 / -1; grid-row: 3; margin-top: clamp(64px, 8vw, 120px); }
.pg-stats .lp-hero-stat-num { letter-spacing: -0.04em; }
.pg-stats .lp-hero-stat-label { letter-spacing: -0.02em; }
.pg-body .lp-hero-proof { margin-top: 32px; }
/* hero corte (Progetti, Contatti): niente foto, label sopra il titolo */
.pg--short .pg-h1 { grid-column: 1 / -1; grid-row: 2; }
.pg--short .pg-label--top { grid-column: 1 / -1; grid-row: 1; margin: 0 0 var(--gap-label); }
.pg--short { padding-bottom: clamp(48px, 6vh, 72px) !important; }
@media (max-width: 900px) {
  :root { --hdr: 72px; --gap-hero-top: 64px; --gap-hero-bottom: 48px; }
  .pg-h1, .pg-photo, .pg-label, .pg-body, .pg-stats { grid-column: 1 / -1; grid-row: auto; }
  .pg-photo { max-width: 420px; margin-top: 32px; }
  .pg-body { margin-top: 24px; }
  .pg-label { margin-top: var(--gap-hero-bottom); }
}

/* ============ RECENSIONI — ticker infinito (card dal Figma) ============ */
.rv-section { overflow: hidden; }
.rv-ticker { margin-top: clamp(48px, 6vw, 80px); overflow: hidden; width: 100%; }
.rv-track { display: flex; width: max-content; animation: rv-scroll 80s linear infinite; will-change: transform; }
.rv-ticker:hover .rv-track, .rv-ticker:focus-within .rv-track { animation-play-state: paused; }
.rv-group { display: flex; gap: 21px; padding-right: 21px; flex: none; }
@keyframes rv-scroll { to { transform: translateX(-50%); } }
.rv-card {
  flex: none; width: 417px; min-height: 550px; margin: 0; padding: 40px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 32px;
  background: var(--bianco); color: var(--nero); border-radius: 16px;
}
.rv-main { display: flex; flex-direction: column; gap: 20px; }
.rv-stars { display: block; width: 80px; height: 16px; }
.rv-text {
  margin: 0; font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500;
  font-size: 18px; line-height: 26px; letter-spacing: -0.01em; text-transform: none; color: var(--nero);
}
.rv-author { display: flex; align-items: center; gap: 17px; }
.rv-avatar { flex: none; width: 60px; height: 60px; border-radius: 50%; object-fit: cover; display: block; }
.rv-who { font-family: 'Inter', system-ui, sans-serif; font-size: 16px; line-height: 20px; letter-spacing: -0.03em; text-transform: none; color: var(--nero); }
.rv-who strong { display: block; font-weight: 600; }
@media (max-width: 900px) {
  .rv-card { width: min(82vw, 340px); min-height: 0; padding: 28px; }
  .rv-track { animation-duration: 70s; }
}
@media (prefers-reduced-motion: reduce) {
  .rv-ticker { overflow-x: auto; }
  .rv-track { animation: none; }
  .rv-group[aria-hidden="true"] { display: none; }
}
/* eccezione alla regola "nessuna animazione": il ticker deve scorrere */
.rv-section .rv-track { animation: rv-scroll 80s linear infinite !important; }
.rv-section .rv-ticker:hover .rv-track, .rv-section .rv-ticker:focus-within .rv-track { animation-play-state: paused !important; }
@media (max-width: 900px) { .rv-section .rv-track { animation-duration: 70s !important; } }
@media (prefers-reduced-motion: reduce) { .rv-section .rv-track { animation: none !important; } }
/* testata su fondo scuro */
.rv-section .lp-review-total strong, .rv-section .lp-review-total span { color: var(--bianco); }

/* ============ HERO CHI SONO — identica al Figma (pagina 1440, contenuto 1290, 12 colonne, gutter 18) ============ */
.pg--cs { --u: min(1px, calc(100vw / 1440)); padding: 0 0 clamp(80px, 8vw, 120px) !important; }
.pg--cs .pg-grid {
  width: min(1290px, calc(100% - 48px)); max-width: none; column-gap: 18px;
  padding-top: calc(263 * var(--u));
  grid-template-rows: calc(357 * var(--u)) auto auto;
}
.pg--cs .pg-h1 {
  grid-column: 1 / span 8; grid-row: 1; white-space: nowrap;
  font-size: calc(100 * var(--u)); line-height: 1; font-weight: 700; letter-spacing: -0.06em;
  text-box: trim-both cap alphabetic;
}
.pg--cs .pg-photo {
  grid-column: 9 / -1; grid-row: 1 / span 2; justify-self: end; align-self: start;
  width: calc(372 * var(--u)); aspect-ratio: 372 / 524; margin: 0; position: relative; overflow: hidden; background: var(--nero);
}
.pg--cs .pg-photo img {
  position: absolute; display: block; max-width: none; height: auto;
  width: 214.4%; left: -71.13%; top: .03%; object-fit: fill;
}
.pg--cs .pg-label {
  grid-column: 1 / span 2; grid-row: 2; margin: 0; align-self: start;
  font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 14px; line-height: 20px; letter-spacing: -0.03em; text-transform: none; color: var(--bianco);
  text-box: trim-both cap alphabetic;
}
.pg--cs .pg-body { grid-column: 3 / span 5; grid-row: 2; margin: 0; display: flex; flex-direction: column; gap: 85px; }
.pg--cs .pg-lead {
  margin: 0; font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 25px; line-height: 33px; letter-spacing: -0.01em; text-transform: none; color: var(--bianco);
  text-box: trim-both cap alphabetic;
}
.pg--cs .pg-proof { display: flex; align-items: flex-start; gap: 19px; }
.pg--cs .pg-faces { display: flex; flex: none; }
.pg--cs .pg-faces img { width: 41px; height: 41px; border: 2px solid var(--nero); border-radius: 50%; object-fit: cover; margin-right: -10px; box-sizing: border-box; background: var(--nero); }
.pg--cs .pg-faces img:last-child { margin-right: 0; }
.pg--cs .pg-proof-text { display: flex; flex-direction: column; gap: 12px; max-width: 285px; }
.pg--cs .pg-proof-stars { display: block; width: 80px; height: 16px; }
.pg--cs .pg-proof-text span { font-family: 'Inter', system-ui, sans-serif; font-size: 16px; line-height: 20px; letter-spacing: -0.03em; text-transform: none; color: #fff; }
.pg--cs .pg-stats { grid-column: 3 / -1; grid-row: 3; margin-top: clamp(64px, 7vw, 100px); }
@media (max-width: 900px) {
  .pg--cs .pg-grid { padding-top: calc(var(--hdr) + 64px); grid-template-rows: none; }
  .pg--cs .pg-h1 { grid-column: 1 / -1; grid-row: auto; white-space: normal; font-size: clamp(44px, 13vw, 72px); }
  .pg--cs .pg-photo { grid-column: 1 / -1; grid-row: auto; justify-self: start; width: min(100%, 372px); margin-top: 40px; }
  .pg--cs .pg-label { grid-column: 1 / -1; grid-row: auto; margin-top: 56px; }
  .pg--cs .pg-body { grid-column: 1 / -1; grid-row: auto; margin-top: 20px; gap: 48px; }
  .pg--cs .pg-lead { font-size: 22px; line-height: 30px; }
  .pg--cs .pg-stats { grid-column: 1 / -1; grid-row: auto; }
}

/* numeri hero Chi sono — Figma: linea 10%, 88 px, 70/0.97 -3%, etichette 18/1.18 -3% maiuscolo, gap 125 */
.pg--cs .pg-nums {
  grid-column: 3 / -1; grid-row: 3; list-style: none; padding: 88px 0 0; margin: 137px 0 0;
  border-top: 1px solid rgba(255, 251, 241, .1);
  display: flex; align-items: center; justify-content: flex-start; gap: 125px;
  font-family: 'PP Formula', 'Inter', sans-serif; color: var(--bianco);
}
.pg--cs .pg-nums li { display: flex; align-items: center; gap: 19px; white-space: nowrap; }
.pg--cs .pg-nums li:nth-child(2) { gap: 27px; }
.pg--cs .pg-nums li:nth-child(3) { gap: 23px; }
.pg--cs .pg-num { font-weight: 500; font-size: 70px; line-height: .97; letter-spacing: -0.03em; text-box: trim-both cap alphabetic; }
.pg--cs .pg-num-label { font-weight: 500; font-size: 18px; line-height: 1.18; letter-spacing: -0.03em; text-transform: uppercase; text-box: trim-both cap alphabetic; }
.pg--cs .pg-nums li:nth-child(3) .pg-num-label { width: 148.7px; white-space: normal; }
.lp-hero.pg--cs { padding-bottom: 97px !important; }
@media (max-width: 1100px) { .pg--cs .pg-nums { gap: 48px; } .pg--cs .pg-num { font-size: 56px; } }
@media (max-width: 900px) {
  .pg--cs .pg-nums { grid-column: 1 / -1; grid-row: auto; flex-direction: column; align-items: flex-start; gap: 32px; margin-top: 72px; padding-top: 48px; }
}

/* ============ SEZIONE RECENSIONI — Figma (label cap 172, titolo 55/1 -3%, riga numeri a 378, card a 581, fondo 148) ============ */
.rv-section--fig { --u: min(1px, calc(100vw / 1440)); padding: calc(172 * var(--u)) 0 148px !important; }
.rv-head { width: min(1290px, calc(100% - 48px)); margin: 0 auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 18px; }
.rv-label {
  grid-column: 1 / span 2; margin: 3px 0 0; align-self: start;
  font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 14px; line-height: 20px; letter-spacing: -0.03em; text-transform: none; color: var(--bianco);
  text-box: trim-both cap alphabetic;
}
.rv-title {
  grid-column: 3 / span 6; margin: 0; font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 700;
  font-size: 55px; line-height: 1; letter-spacing: -0.03em; text-transform: none; color: var(--bianco);
  text-box: trim-both cap alphabetic;
}
.rv-stats {
  grid-column: 1 / -1; margin: 51px 0 0 205px; width: min(1041px, calc(100% - 205px));
  display: flex; align-items: center; justify-content: space-between; color: var(--bianco);
}
.rv-total { margin: 0; display: flex; align-items: flex-end; gap: 17px; }
.rv-total-num { font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 70px; line-height: .97; letter-spacing: -0.03em; white-space: nowrap; text-box: trim-both cap alphabetic; }
.rv-total-side { display: flex; flex-direction: column; gap: 10px; width: 148.7px; }
.rv-total-side img { display: block; width: 80px; height: 16px; }
.rv-total-label { font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 18px; line-height: 1.18; letter-spacing: -0.03em; text-transform: uppercase; text-box: trim-both cap alphabetic; }
.rv-divider { flex: none; width: 1px; height: 131px; background: rgba(255, 255, 255, .18); }
.rv-platforms { list-style: none; margin: 0; padding: 0; width: 546px; display: flex; align-items: center; justify-content: space-between; }
.rv-platforms a { display: flex; flex-direction: column; align-items: flex-start; color: var(--bianco); text-decoration: none; }
.rv-platforms li:nth-child(1) a { gap: 10px; width: 140px; }
.rv-platforms li:nth-child(2) a { gap: 8px; width: 125px; }
.rv-platforms li:nth-child(3) a { gap: 6px; width: 151px; }
.rv-platforms img { display: block; max-width: none; }
.rv-platforms span { white-space: nowrap; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; line-height: 20px; letter-spacing: -0.03em; opacity: .57; text-transform: none; }
.rv-platforms u { text-decoration: underline; text-underline-position: from-font; }
.rv-platforms a:hover span, .rv-platforms a:focus-visible span { opacity: 1; }
.rv-section--fig .rv-ticker { margin-top: 72px; }
@media (max-width: 1100px) { .rv-stats { margin-left: 0; width: 100%; flex-wrap: wrap; gap: 40px; } .rv-platforms { width: auto; flex: 1; min-width: 340px; gap: 24px; } }
@media (max-width: 900px) {
  .rv-section--fig { padding: 96px 0 96px !important; }
  .rv-label, .rv-title { grid-column: 1 / -1; }
  .rv-title { margin-top: 20px; font-size: clamp(34px, 9vw, 55px); }
  .rv-stats { flex-direction: column; align-items: flex-start; margin-top: 48px; }
  .rv-divider { width: 100%; height: 1px; }
  .rv-platforms { flex-direction: column; align-items: flex-start; gap: 28px; min-width: 0; }
  .rv-section--fig .rv-ticker { margin-top: 48px; }
}

/* container pagine interne: 1290 px (pagina 1440, margini 75) */
:root { --grid-max: 1290px; }

/* card progetto: nome 25/33 sotto la foto, sottotitolo opaco, nessun link */
.lp-project-head { gap: 6px; margin: 24px 0 0; }
.lp-project .lp-project-name {
  font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 25px; line-height: 33px; letter-spacing: -0.01em; text-transform: none; color: var(--bianco);
}
.lp-project .lp-project-sector {
  font-family: 'Inter', system-ui, sans-serif; font-weight: 400; font-size: 16px; line-height: 20px; letter-spacing: -0.03em; text-transform: none; color: var(--bianco); opacity: .57;
}
.lp-section--light .lp-project .lp-project-name, .lp-section--light .lp-project .lp-project-sector { color: var(--nero); }

/* ===== OMOGENEITÀ: in tutte le pagine interne il primo elemento della hero (label o H1) parte a 263 px (cap height), sotto l'header ===== */
:root { --u: min(1px, calc(100vw / 1440)); --hero-top: calc(263 * var(--u)); }
.lp-hero.pg:not(.pg--cs) { padding-top: 0 !important; }
.pg:not(.pg--cs) .pg-grid { padding-top: var(--hero-top); }
.pg .pg-h1, .pg .pg-label--top { text-box: trim-both cap alphabetic; }
.pg .pg-label--top { line-height: 20px; }
@media (max-width: 900px) {
  .pg .pg-grid, .pg:not(.pg--cs) .pg-grid { padding-top: calc(var(--hdr) + 64px); }
}
/* H1 hero: 100 px (come Chi sono) in tutte le pagine interne */
@media (min-width: 901px) {
  .pg .pg-h1 { font-size: calc(100 * var(--u)); line-height: 1; font-weight: 700; letter-spacing: -0.06em; }
}
/* H1 = label + titolo grande (struttura SEO), ognuno resta nella sua posizione di griglia */
.pg-heading { display: contents; }
.pg-heading > .pg-label, .pg-heading > .pg-h1 { display: block; }
/* H1 interne: 80 px (sostituisce i 100 px), stessa regola per tutte le pagine */
@media (min-width: 901px) {
  .pg .pg-h1 { font-size: min(80px, calc(80 * var(--u) * 1)); line-height: 1; }
  .pg--nophoto .pg-h1 { grid-column: 1 / span 10; }
  /* Chi sono: 170 px tra H1 e riga label | testo, come le altre pagine */
  .pg--cs .pg-grid { grid-template-rows: auto auto auto; }
  .pg--cs .pg-label, .pg--cs .pg-body { margin-top: var(--gap-hero-bottom); }
}
/* hero servizi (senza foto): label sopra · H1 in 6/12 col. · 170 px · testo e pulsanti */
@media (min-width: 901px) {
  .pg--nophoto .pg-label {
    grid-column: 1 / -1; grid-row: 1; margin: 0; align-self: start;
    font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 14px; line-height: 20px; letter-spacing: -0.03em; text-transform: none; color: var(--bianco);
    text-box: trim-both cap alphabetic;
  }
  .pg--nophoto .pg-h1 { grid-column: 1 / span 6; grid-row: 2; margin-top: var(--gap-label); }
  .pg--nophoto .pg-body { grid-column: 3 / span 5; grid-row: 3; margin-top: var(--gap-hero-bottom); }
  .pg--nophoto .pg-stats { grid-row: 4; }
}
/* servizi: H1 in 7/12 col.; testo e pulsanti a filo con l'H1, pulsanti sulla stessa riga */
@media (min-width: 901px) {
  .pg--nophoto .pg-h1 { grid-column: 1 / span 7; }
  .pg--nophoto .pg-body { grid-column: 1 / span 9; }
  .pg--nophoto .pg-body .lp-text { max-width: 527px; }
  .pg--nophoto .pg-body .lp-cta-row { flex-wrap: nowrap; }
}

/* ===== NUMERI hero — stesso componente in tutte le pagine: tutto il container, "+" piccolo ===== */
.pg .pg-nums {
  grid-column: 1 / -1; list-style: none; padding: 88px 0 0; margin: 137px 0 0;
  border-top: 1px solid rgba(255, 251, 241, .1);
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  font-family: 'PP Formula', 'Inter', sans-serif; color: var(--bianco);
}
.pg .pg-nums li { display: flex; align-items: center; gap: 19px; white-space: nowrap; }
.pg .pg-nums li:nth-child(n) { gap: 19px; }
.pg .pg-num { display: flex; align-items: flex-start; font-weight: 500; font-size: 70px; line-height: .97; letter-spacing: -0.03em; text-box: trim-both cap alphabetic; }
.pg .pg-plus { font-size: 28px; line-height: 1; margin-right: 3px; letter-spacing: 0; }
.pg .pg-num-label { font-weight: 500; font-size: 18px; line-height: 1.18; letter-spacing: -0.03em; text-transform: uppercase; text-box: trim-both cap alphabetic; }
.pg .pg-nums li:nth-child(3) .pg-num-label { width: auto; }
.pg .pg-num-side { display: flex; flex-direction: column; gap: 10px; }
.pg .pg-num-side img { display: block; width: 80px; height: 16px; }
.pg--cs .pg-nums { grid-row: 3; }
.pg--nophoto .pg-nums { grid-row: 4; }
@media (max-width: 1100px) { .pg .pg-nums { flex-wrap: wrap; gap: 40px 48px; } .pg .pg-num { font-size: 56px; } }
@media (max-width: 900px) { .pg .pg-nums { grid-row: auto; flex-direction: column; align-items: flex-start; gap: 32px; margin-top: 72px; padding-top: 48px; } }

/* label: niente letterspacing negativo; solo la label della hero in maiuscolo */
.lp-label, .rv-label, .pg-label, .pg .pg-label, .pg--cs .pg-label, .pg--nophoto .pg-label { letter-spacing: 0 !important; }
.pg .pg-label, .pg--cs .pg-label, .pg--nophoto .pg-label, .pg .pg-label--top { text-transform: uppercase !important; }

/* ============ PAGINA "HAI UN PROGETTO?" ============ */
.hp { padding: var(--hero-top) 0 clamp(96px, 10vw, 140px); }
.hp-grid { width: min(1290px, calc(100% - 48px)); margin: 0 auto; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 18px; align-items: start; }
.hp-heading { display: contents; }
.hp-label {
  grid-column: 1 / span 5; grid-row: 1; display: block;
  font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 14px; line-height: 20px; letter-spacing: 0; text-transform: uppercase; color: var(--bianco);
  text-box: trim-both cap alphabetic;
}
.hp-h1 {
  grid-column: 1 / span 6; grid-row: 2; display: block; margin-top: var(--gap-label);
  font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 700; font-size: min(80px, calc(80 * var(--u))); line-height: 1; letter-spacing: -0.06em; text-transform: none; color: var(--bianco);
  text-box: trim-both cap alphabetic;
}
.hp-form { grid-column: 7 / -1; grid-row: 1 / span 3; display: flex; flex-direction: column; gap: 56px; margin-top: -6px; }
.hp-field { margin: 0; padding: 0; border: 0; min-width: 0; }
.hp-field legend, .hp-legend {
  margin: 0 0 20px; padding: 0; font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 25px; line-height: 33px; letter-spacing: -0.01em; text-transform: none; color: var(--bianco);
}
.hp-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.hp-card {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 16px;
  min-height: 190px; padding: 24px 20px 22px; border: 1px solid transparent; border-radius: 16px; background: rgba(255, 251, 241, .06);
  color: var(--bianco); cursor: pointer; transition: background-color .25s ease, border-color .25s ease;
}
.hp-card:hover { background: rgba(255, 251, 241, .1); }
.hp-card input, .hp-pill input { position: absolute; opacity: 0; pointer-events: none; }
.hp-card > i { font-size: 52px; line-height: 1; opacity: .85; margin-bottom: auto; margin-top: 10px; }
.hp-card-label { font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: 18px; line-height: 22px; text-align: center; }
.hp-check { position: absolute; top: 18px; left: 18px; width: 26px; height: 26px; border: 1px solid var(--bianco); border-radius: 50%; display: grid; place-items: center; }
.hp-check::after { content: ''; width: 12px; height: 12px; border-radius: 50%; background: var(--bianco); transform: scale(0); transition: transform .2s ease; }
.hp-card input:checked ~ .hp-check::after { transform: scale(1); }
.hp-card:has(input:checked) { border-color: var(--bianco); background: rgba(255, 251, 241, .12); }
.hp-card input:focus-visible ~ .hp-check { outline: 2px solid var(--bianco); outline-offset: 3px; }
.hp-pills { display: flex; flex-wrap: wrap; gap: 10px; }
.hp-pill { position: relative; cursor: pointer; }
.hp-pill span {
  display: inline-flex; align-items: center; padding: 13px 20px; border: 1px solid rgba(255, 251, 241, .3); border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif; font-size: 16px; line-height: 20px; color: var(--bianco); transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.hp-pill:hover span { border-color: var(--bianco); }
.hp-pill input:checked + span { background: var(--bianco); color: var(--nero); border-color: var(--bianco); }
.hp-pill input:focus-visible + span { outline: 2px solid var(--bianco); outline-offset: 3px; }
.hp-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
.hp-input { display: flex; flex-direction: column; gap: 10px; }
.hp-input span { font-family: 'Inter', system-ui, sans-serif; font-size: 14px; line-height: 20px; color: var(--bianco); opacity: .57; }
.hp-input input, .hp-input textarea {
  width: 100%; box-sizing: border-box; padding: 18px 22px; border: 1px solid transparent; border-radius: 14px; background: rgba(255, 251, 241, .06);
  font-family: 'Inter', system-ui, sans-serif; font-size: 16px; line-height: 20px; color: var(--bianco); resize: vertical; outline: none; transition: border-color .2s ease, background-color .2s ease;
}
.hp-input textarea { min-height: 150px; }
.hp-input input::placeholder, .hp-input textarea::placeholder { color: var(--bianco); opacity: .4; }
.hp-input input:focus, .hp-input textarea:focus { border-color: rgba(255, 251, 241, .5); background: rgba(255, 251, 241, .09); }
.hp-form .is-invalid { border-color: #ff8a7a !important; }
.hp-consent { display: flex; gap: 12px; align-items: flex-start; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; line-height: 20px; color: var(--bianco); opacity: .75; cursor: pointer; }
.hp-consent input { appearance: none; flex: none; width: 20px; height: 20px; margin: 0; border: 1px solid var(--bianco); border-radius: 5px; display: grid; place-items: center; }
.hp-consent input:checked { background: var(--bianco); }
.hp-consent input:checked::after { content: ''; width: 9px; height: 5px; border-left: 2px solid var(--nero); border-bottom: 2px solid var(--nero); transform: rotate(-45deg) translate(1px, -1px); }
.hp-actions { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.hp-actions .lp-btn { cursor: pointer; }
.hp-status { margin: 0; font-family: 'Inter', system-ui, sans-serif; font-size: 14px; line-height: 20px; color: var(--bianco); opacity: .75; max-width: 34em; }
@media (max-width: 900px) {
  .hp { padding-top: calc(var(--hdr) + 64px); }
  .hp-label, .hp-h1, .hp-form { grid-column: 1 / -1; grid-row: auto; }
  .hp-h1 { font-size: clamp(44px, 13vw, 72px); }
  .hp-form { margin-top: 56px; gap: 44px; }
  .hp-row { grid-template-columns: 1fr; }
}
/* "Hai un progetto?" ora è un link */
.main-nav a.nav-cta, a.nav-cta { color: var(--nero); text-decoration: none; }
.main-nav a.nav-cta:hover, a.nav-cta:hover { color: var(--bianco); }
.hp-card-label, .hp-pill span { text-transform: none; }
.hp-input span, .hp-consent, .hp-consent span, .hp-status, .hp-input input, .hp-input textarea, .hp-legend { text-transform: none; }

/* ===== Recensioni: ticker trascinabile (il movimento è gestito da JS) ===== */
.rv-section .rv-ticker.is-js .rv-track { animation: none !important; }
.rv-section .rv-ticker.is-js { overflow: hidden !important; cursor: grab; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.rv-section .rv-ticker.is-js.is-dragging { cursor: grabbing; }
.rv-section .rv-ticker.is-js .rv-group[aria-hidden="true"] { display: flex !important; }
.rv-title { grid-column: 3 / span 9; text-wrap: balance; }
@media (max-width: 900px) { .rv-title { grid-column: 1 / -1; } }

/* Hero senza label: l'H1 parte da solo a 263px */
@media (min-width: 901px) {
  .pg--solo .pg-h1 { grid-row: 1; margin-top: 0; }
  .pg--solo .pg-body { grid-row: 2; }
  .pg--nophoto.pg--solo .pg-nums { grid-row: 3; }
}

/* Video della home come sfondo della hero dei servizi (opacizzato 40%) */
.pg-bgvideo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .4; z-index: 0; pointer-events: none; }
.lp-hero:has(.pg-bgvideo) .pg-grid { position: relative; z-index: 1; }
@media (prefers-reduced-motion: reduce) { .pg-bgvideo { display: none; } }

/* ===== Hero servizi: schermo intero, testo subito sotto l'H1, un solo pulsante, numeri più piccoli ===== */
.pg-bgvideo { opacity: .25; }
.pg .lp-btn { font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-weight: 500; font-size: 16px; letter-spacing: -0.03em; text-transform: none; padding: 17px 24px 16px; }
.pg .pg-nums { padding-top: 36px; margin-top: 0; }
.pg .pg-num { font-size: 48px; }
.pg .pg-plus { font-size: 20px; margin-right: 2px; }
.pg .pg-num-label { font-size: 14px; }
.pg .pg-num-side { gap: 8px; }
.pg .pg-num-side img { width: 64px; height: auto; }
.pg .pg-nums li, .pg .pg-nums li:nth-child(n) { gap: 14px; }
@media (min-width: 901px) {
  .lp-hero.pg--nophoto { padding-bottom: 0 !important; justify-content: flex-start; }
  .pg--nophoto .pg-grid { min-height: 100svh; padding-bottom: 28px; box-sizing: border-box; grid-template-rows: auto auto auto 1fr; align-content: start; }
  .pg--nophoto.pg--solo .pg-grid { grid-template-rows: auto auto 1fr; }
  .pg--nophoto .pg-body { margin-top: var(--gap-label); }
  .pg--nophoto .pg-body .lp-cta-row { margin-top: 56px; }
  .pg--nophoto .pg-nums { align-self: end; }
}

/* Recensioni: solo loghi (-25%), senza testi, ognuno linka al proprio profilo */
.rv-platforms li:nth-child(n) a { width: auto; gap: 0; }
.rv-platforms { width: 420px; }
.rv-platforms img { opacity: .95; transition: opacity .25s ease; }
.rv-platforms a:hover img, .rv-platforms a:focus-visible img { opacity: 1; }
.rv-platforms a:focus-visible { outline: 1px solid var(--bianco); outline-offset: 6px; border-radius: 4px; }

/* ===== Chi sono: numeri come da Figma (NON full container) ===== */
.pg.pg--cs .pg-nums { grid-column: 3 / -1; grid-row: 3; padding: 88px 0 0; margin: 137px 0 0; justify-content: flex-start; gap: 125px; }
.pg.pg--cs .pg-nums li { gap: 19px; }
.pg.pg--cs .pg-nums li:nth-child(2) { gap: 27px; }
.pg.pg--cs .pg-nums li:nth-child(3) { gap: 23px; }
.pg.pg--cs .pg-num { font-size: 70px; }
.pg.pg--cs .pg-plus { font-size: 28px; margin-right: 3px; }
.pg.pg--cs .pg-num-label { font-size: 18px; }
.pg.pg--cs .pg-nums li:nth-child(3) .pg-num-label { width: 148.7px; white-space: normal; }
@media (max-width: 1100px) { .pg.pg--cs .pg-nums { gap: 48px; } .pg.pg--cs .pg-num { font-size: 56px; } }
@media (max-width: 900px) { .pg.pg--cs .pg-nums { grid-column: 1 / -1; grid-row: auto; flex-direction: column; align-items: flex-start; gap: 32px; margin-top: 72px; padding-top: 48px; } }

.main-nav a.nav-cta, a.nav-cta { display: inline-flex; align-items: center; gap: 12px; }
.main-nav a.nav-cta i { font-size: 18px; }

/* Chi sono: foto con angoli 16px */
.pg--cs .pg-photo { border-radius: 16px; overflow: hidden; }

/* Progetti: H1 + testo a destra, 4 progetti uno sotto l'altro, angoli 16px */
@media (min-width: 901px) {
  .pg--proj .pg-h1 { grid-column: 1 / span 8; grid-row: 1; margin: 0; }
  .pg--proj .pg-intro { grid-column: 10 / span 3; grid-row: 1; margin: 0; align-self: start; }
}
.pg-intro { font-family: 'Inter', system-ui, sans-serif; font-size: 16px; line-height: 20px; letter-spacing: -0.03em; text-transform: none; color: var(--bianco); text-box: trim-both cap alphabetic; }
@media (max-width: 900px) { .pg--proj .pg-intro { margin-top: 24px; max-width: 360px; } }
.pj-grid { row-gap: 72px; }
.pj-card { grid-column: 1 / -1; }
.pj-card .lp-project-media { aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; }
.pj-card .project-media-inner { border-radius: 16px; overflow: hidden; }

.main-nav a.nav-cta, a.nav-cta { padding: 14px 16px 12px; }

.main-nav a.nav-cta, a.nav-cta { padding: 16px 18px 12px; }

.main-nav a.nav-cta, a.nav-cta { font-size: 12px; }

.main-nav a.nav-cta, a.nav-cta { font-size: 13px; }

.main-nav a.nav-cta, a.nav-cta { background: transparent; color: var(--bianco); border: 1px solid var(--bianco); padding: 15px 17px 11px; box-shadow: none; transition: background-color .25s ease, color .25s ease; }
.main-nav a.nav-cta:hover, a.nav-cta:hover, .main-nav a.nav-cta:focus-visible { background: var(--bianco); color: var(--nero); box-shadow: none; }

.main-nav .nav-cta, button.nav-cta {
  display: inline-flex; align-items: center; gap: 12px; cursor: pointer;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-size: 13px; font-weight: 700; line-height: 1.18; letter-spacing: -0.03em; text-transform: none;
  background: transparent; color: var(--bianco); border: 1px solid var(--bianco); border-radius: 6px; padding: 15px 17px 11px; box-shadow: none;
  transition: background-color .25s ease, color .25s ease;
}
.main-nav .nav-cta:hover, button.nav-cta:hover, button.nav-cta:focus-visible { background: var(--bianco); color: var(--nero); }

/* Tendina Servizi: righe più vicine, più respiro sopra e sotto */
.main-nav .nav-sub a { margin: 2px 10px; padding: 14px 20px; }
.main-nav .nav-sub a:first-child { margin-top: 16px; }
.main-nav .nav-sub a:last-child { margin-bottom: 16px; }
.main-nav .nav-sub a + a { margin-top: 2px; }

/* ===== Pulsanti: stile di "Invia richiesta", uguale per tutti ===== */
.lp-btn, .pg .lp-btn {
  gap: 14px; padding: 18px 28px 16px; border-radius: 6px;
  font-family: inherit; font-size: 14px; font-weight: 400; line-height: var(--micro-line); letter-spacing: 0.08em; text-transform: uppercase;
}
.lp-btn .btn-arrow { width: 18px; height: 18px; margin-top: 0; stroke-width: 1.5; }
.lp-btn.lp-btn--ghost { background: var(--bianco); border-color: var(--bianco); color: var(--nero); }
.lp-btn.lp-btn--ghost:hover, .lp-btn.lp-btn--ghost:focus-visible { background: transparent; color: var(--bianco); }
.lp-section--light .lp-btn.lp-btn--ghost { background: var(--nero); border-color: var(--nero); color: var(--bianco); }
.lp-section--light .lp-btn.lp-btn--ghost:hover, .lp-section--light .lp-btn.lp-btn--ghost:focus-visible { background: transparent; color: var(--nero); }

/* Chi sono: label in minuscolo (Figma) e testo a destra sotto la foto */
.pg--cs .pg-label { text-transform: none !important; }
.pg--cs .pg-side { grid-column: 9 / -1; grid-row: 2; justify-self: end; align-self: end; max-width: 240px; margin: 0; text-align: right; font-family: 'Inter', system-ui, sans-serif; font-size: 18px; line-height: 25px; letter-spacing: -0.03em; text-transform: none; color: var(--bianco); }
@media (max-width: 900px) { .pg--cs .pg-side { grid-column: 1 / -1; grid-row: auto; justify-self: start; text-align: left; margin-top: 32px; } }

/* ===== Chi sono: hero invertita (sfondo bianco Fenixo, testi neri), H1 100px ===== */
.lp-hero.pg--cs { background: var(--bianco); color: var(--nero); }
.pg--cs .pg-h1, .pg--cs .pg-label, .pg--cs .pg-lead, .pg--cs .pg-side,
.pg--cs .pg-proof-text span, .pg--cs .pg-nums, .pg--cs .pg-num, .pg--cs .pg-num-label { color: var(--nero); }
.pg--cs .pg-nums { border-top-color: rgba(6, 14, 19, .14); }
.pg--cs .pg-faces img { border-color: var(--bianco); background: var(--bianco); }
@media (min-width: 901px) { .pg.pg--cs .pg-h1 { font-size: min(100px, calc(100 * var(--u))); line-height: 1; } }
.cs-light .main-nav .nav-cta, .cs-light button.nav-cta { color: var(--nero); border-color: var(--nero); }
.cs-light .main-nav .nav-cta:hover, .cs-light button.nav-cta:hover, .cs-light button.nav-cta:focus-visible { background: var(--nero); color: var(--bianco); }
.cs-light .nav-dd > a, .cs-light .main-nav a { color: var(--nero); }

/* Header su sfondo chiaro: lo scambio lettere all'hover resta nero (era bianco su bianco) */
.cs-light .nav-layer-hover { color: var(--nero); }
.cs-light .nav-dot { color: var(--nero); }

/* ===== Hero: H1 a 200px dal bordo superiore (era 263) ===== */
:root { --hero-top: calc(200 * var(--u, 1px)); }
.pg--cs .pg-grid { padding-top: calc(200 * var(--u)); }
@media (min-width: 901px) {
  /* Chi sono: label, testo, recensioni e "Lavoro da…" 40px più in alto */
  .pg--cs .pg-label, .pg--cs .pg-body { margin-top: calc(var(--gap-hero-bottom) - 40px); }
}
@media (min-width: 901px) { .pg.pg--cs .pg-nums { margin-top: 40px; padding-top: 56px; } }

/* ===== Contatti: email/telefono grandi, form in riquadro chiaro ===== */
.ct-list dd.ct-big { font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: clamp(28px, 3.2vw, 44px); line-height: 1.1; letter-spacing: -0.03em; }
.ct-list dd.ct-big a { text-decoration: none; }
.ct-list dd.ct-big a:hover { text-decoration: underline; text-underline-offset: 6px; }
.ct-list { gap: 28px; }
.lp-form-card { padding: clamp(28px, 3.4vw, 48px); border-radius: 16px; background: var(--bianco); color: var(--nero); }
.lp-section--dark .lp-form-card .lp-field.ct-consent label, .lp-section--dark .lp-form-card .lp-field.ct-consent label span { color: var(--nero); }
.lp-section--dark .lp-form-card .ct-consent input { accent-color: var(--nero); }
.lp-form-card .lp-form-intro { margin-bottom: 24px; }

/* Contatti: social più in basso, checkbox solo bordino */
.ct-info .ct-social { margin-top: 72px; }
.lp-form-card .ct-consent input { appearance: none; -webkit-appearance: none; width: 18px; height: 18px; margin-top: 2px; border: 1px solid var(--nero); border-radius: 3px; background: transparent; display: grid; place-items: center; cursor: pointer; }
.lp-form-card .ct-consent input::after { content: ''; width: 9px; height: 5px; border-left: 1.5px solid var(--nero); border-bottom: 1.5px solid var(--nero); transform: translateY(-1px) rotate(-45deg) scale(0); transition: transform .15s ease; }
.lp-form-card .ct-consent input:checked::after { transform: translateY(-1px) rotate(-45deg) scale(1); }
.lp-form-card .ct-consent input:focus-visible { outline: 2px solid var(--nero); outline-offset: 2px; }

/* Mappa: scura, monocromatica, strade blu acciaio */
.ct-map { background: var(--nero); }
.ct-map::after { content: none; }
.ct-map iframe { filter: grayscale(1) invert(1) sepia(1) hue-rotate(165deg) saturate(2.2) contrast(1.15) brightness(1.1); }

/* Progetti: griglia 2x2, testo a destra sulla linea di base dell'H1 */
@media (min-width: 901px) {
  .pg--proj .pg-intro { align-self: end; }
  .pj-card { grid-column: span 6; }
}
.pj-grid { column-gap: 18px; row-gap: 56px; }
.pj-card .lp-project-media { aspect-ratio: 4 / 3; }
@media (max-width: 900px) { .pj-card { grid-column: 1 / -1; } }

/* Chi sono: CTA finale centrale */
.cs-cta-center { text-align: center; display: flex; flex-direction: column; align-items: center; }
.cs-cta-center .lp-h2 { max-width: 14em; margin-left: auto; margin-right: auto; }
.cs-cta-center .lp-text { max-width: 36em; margin-left: auto; margin-right: auto; }
.cs-cta-center .lp-cta-row { justify-content: center; }
.cs-contacts { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 48px; margin-top: 56px; }
.cs-contacts a { font-family: 'PP Formula', 'Inter', sans-serif; font-weight: 500; font-size: clamp(22px, 2.4vw, 32px); line-height: 1.1; letter-spacing: -0.03em; color: var(--bianco); text-decoration: none; }
.cs-contacts a:hover { text-decoration: underline; text-underline-offset: 6px; }
.cs-contacts a { text-transform: none; }

/* =====================================================================
   PULSANTI — un solo stile per tutti (font, size, padding, radius, transform)
   Scuro: pieno bianco · Chiaro: pieno nero · Variante link (.btn-line): contorno
===================================================================== */
.lp-btn.lp-btn, .lp-btn--submit.lp-btn--submit, .pm-submit.pm-submit, .btn-line.btn-line, .lp-btn-line.lp-btn-line {
  display: inline-flex; align-items: center; justify-content: flex-start; gap: 14px; box-sizing: border-box; position: static; cursor: pointer;
  margin: 0; padding: 18px 28px 16px; border: 1px solid var(--bianco); border-radius: 6px;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-size: 14px; font-weight: 400; line-height: 16px; letter-spacing: 0.08em;
  text-transform: uppercase !important; text-decoration: none; text-align: left; white-space: nowrap;
  background: var(--bianco); color: var(--nero);
  transform: none; transition: background-color .3s ease, color .3s ease, border-color .3s ease;
}
.lp-btn.lp-btn:hover, .lp-btn--submit.lp-btn--submit:hover, .pm-submit.pm-submit:hover,
.lp-btn.lp-btn:focus-visible, .lp-btn--submit.lp-btn--submit:focus-visible, .pm-submit.pm-submit:focus-visible { background: transparent; color: var(--bianco); border-color: var(--bianco); }
/* variante link = contorno */
.btn-line.btn-line, .lp-btn-line.lp-btn-line { background: transparent; color: var(--bianco); }
.btn-line.btn-line:hover, .lp-btn-line.lp-btn-line:hover, .btn-line.btn-line:focus-visible { background: var(--bianco); color: var(--nero); }
.btn-line::after, .lp-btn-line::after { content: none !important; display: none; }
/* frecce uguali ovunque */
.lp-btn .btn-arrow, .btn-line .btn-arrow, .lp-btn-line .btn-arrow, .pm-submit svg { width: 18px; height: 18px; margin: 0; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; }
/* contesti chiari: pieno nero */
.lp-section--light .lp-btn.lp-btn, .lp-section--light .lp-btn--submit.lp-btn--submit, .pm .pm-submit.pm-submit { background: var(--nero); color: var(--bianco); border-color: var(--nero); }
.lp-section--light .lp-btn.lp-btn:hover, .lp-section--light .lp-btn--submit.lp-btn--submit:hover, .pm .pm-submit.pm-submit:hover,
.lp-section--light .lp-btn.lp-btn:focus-visible { background: transparent; color: var(--nero); border-color: var(--nero); }
.lp-section--light .btn-line.btn-line, .lp-section--light .lp-btn-line.lp-btn-line { background: transparent; color: var(--nero); border-color: var(--nero); }
.lp-section--light .btn-line.btn-line:hover, .lp-section--light .lp-btn-line.lp-btn-line:hover { background: var(--nero); color: var(--bianco); }
/* ghost = come un pulsante normale */
.lp-btn.lp-btn--ghost.lp-btn--ghost { background: var(--bianco); color: var(--nero); border-color: var(--bianco); }
/* mobile: pulsanti a tutta larghezza nelle righe CTA */
@media (max-width: 900px) { .lp-cta-row .lp-btn.lp-btn, .lp-cta-row .btn-line.btn-line { justify-content: space-between; } }

/* ===== CTA finale Chi sono: più aria, impaginazione editoriale ===== */
.cs-cta.cs-cta { padding-top: clamp(120px, 14vw, 200px); padding-bottom: clamp(96px, 10vw, 160px); }
.cs-cta-center .lp-label { margin: 0 0 36px; }
.cs-cta-center .lp-h2 { margin: 0; }
.cs-cta-center .lp-text { margin-top: 44px; }
.cs-cta-center .lp-cta-row { margin-top: 56px; }
.cs-cta-center .cs-contacts { display: grid; grid-template-columns: 1fr 1fr; gap: 0; width: min(640px, 100%); margin-top: clamp(96px, 10vw, 144px); padding-top: 40px; border-top: 1px solid rgba(255, 251, 241, .16); text-align: center; }
.cs-contacts p { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.cs-contacts p + p { border-left: 1px solid rgba(255, 251, 241, .16); }
.cs-contacts span { font-family: 'PP Formula', 'Inter', sans-serif; font-size: 12px; line-height: 16px; letter-spacing: 0.08em; text-transform: uppercase; opacity: .55; }
.cs-contacts a { font-size: clamp(18px, 1.8vw, 24px); }
@media (max-width: 600px) { .cs-cta-center .cs-contacts { grid-template-columns: 1fr; gap: 28px; } .cs-contacts p + p { border-left: 0; } }

/* Footer: testo legale al centro, social a destra */
html:is([lang="it"], [lang="en"]) .footer-bar { grid-template-columns: 1fr auto 1fr; }
html:is([lang="it"], [lang="en"]) .footer-legal { grid-column: 2; text-align: center; }
html:is([lang="it"], [lang="en"]) .footer-socials { grid-column: 3; }
@media (max-width: 700px) {
  html:is([lang="it"], [lang="en"]) .footer-bar { grid-template-columns: 1fr; }
  html:is([lang="it"], [lang="en"]) .footer-legal, html:is([lang="it"], [lang="en"]) .footer-socials { grid-column: 1; }
}

/* Pulsante header: stessi font, size, padding e transform di tutti i pulsanti (variante contorno) */
.main-nav .nav-cta.nav-cta, button.nav-cta.nav-cta, .mobile-cta.mobile-cta {
  display: inline-flex; align-items: center; gap: 14px; box-sizing: border-box; margin: 0;
  padding: 18px 28px 16px; border: 1px solid var(--bianco); border-radius: 6px;
  font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-size: 14px; font-weight: 400; line-height: 16px; letter-spacing: 0.08em;
  text-transform: uppercase !important; white-space: nowrap; background: transparent; color: var(--bianco);
}
.main-nav .nav-cta.nav-cta:hover, button.nav-cta.nav-cta:hover, button.nav-cta.nav-cta:focus-visible { background: var(--bianco); color: var(--nero); }
.cs-light .main-nav .nav-cta.nav-cta, .cs-light button.nav-cta.nav-cta { color: var(--nero); border-color: var(--nero); }
.cs-light .main-nav .nav-cta.nav-cta:hover, .cs-light button.nav-cta.nav-cta:hover { background: var(--nero); color: var(--bianco); }
/* Invia richiesta: a prova di override */
.pm #pm-form button.pm-submit { text-transform: uppercase !important; font-family: 'PP Formula', 'Inter', system-ui, sans-serif; font-size: 14px; font-weight: 400; letter-spacing: 0.08em; line-height: 16px; padding: 18px 28px 16px; border-radius: 6px; }
.main-nav .nav-cta.nav-cta, button.nav-cta.nav-cta, .mobile-cta.mobile-cta, .lp-btn.lp-btn, .btn-line.btn-line, .lp-btn-line.lp-btn-line, .lp-btn--submit.lp-btn--submit, .pm #pm-form button.pm-submit { min-height: 54px; }

/* ===== Cosa faccio · accordion (Chi sono) ===== */
.cs-svc .cs-svc-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:18px;align-items:start}
.cs-svc .cs-svc-label{grid-column:1/span 2;margin:0}
.cs-svc .cs-svc-text{grid-column:3/span 6;position:sticky;top:120px}
.cs-svc .cs-svc-text .lp-h2{margin:0}
.cs-svc .cs-svc-lead{margin-top:48px;font:400 clamp(18px,1.7vw,24px)/1.3 'PP Formula','Inter',sans-serif;max-width:26em}
.cs-acc{grid-column:9/-1;list-style:none;margin:0;padding:0;border-top:1px solid var(--nero)}
.cs-acc-item{border-bottom:1px solid var(--nero)}
.cs-acc-btn{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;padding:26px 0;font:400 clamp(20px,1.7vw,24px)/1.2 'PP Formula','Inter',sans-serif;color:var(--nero)}
.cs-acc-btn:focus-visible{outline:2px solid var(--nero);outline-offset:2px}
.cs-acc-panel{display:grid!important;grid-template-rows:0fr;transition:grid-template-rows .6s cubic-bezier(.22,1,.36,1)!important}
.cs-acc-item.is-open .cs-acc-panel{grid-template-rows:1fr}
.cs-acc-inner{overflow:hidden;min-height:0}
.cs-acc-inner p{margin:0 0 20px;font:400 16px/1.5 'Inter',sans-serif;color:var(--nero);max-width:34em}
.cs-acc-more{display:inline-block;margin:0 0 28px;font:400 14px/1 'Inter',sans-serif;color:var(--nero);text-decoration:underline;text-underline-offset:4px}
.cs-acc-item:not(.is-open) .cs-acc-inner{visibility:hidden}
@media (max-width:900px){
  .cs-svc .cs-svc-grid{display:block}
  .cs-svc .cs-svc-text{position:static;margin:24px 0 40px}
  .cs-svc .cs-svc-lead{margin-top:28px}
}
.cs-svc .cs-acc, .cs-svc .cs-acc *{text-transform:none!important;letter-spacing:0!important}
.cs-svc .cs-acc-btn{font-weight:400}

/* ===== Portfolio · scroll orizzontale (Chi sono) ===== */
.hp{position:relative;background:var(--bianco);color:var(--nero)}
.hp-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
.hp-track{display:flex;height:100%;width:max-content;will-change:transform}
.hp-slide{flex:0 0 auto;height:100%;display:flex;flex-direction:column;justify-content:center;border-right:1px solid rgba(6,14,19,.14);padding:0 clamp(32px,5vw,72px)}
.hp-intro{width:50vw;align-items:flex-start;gap:48px}
.hp-intro h2{margin:0;font:400 clamp(44px,5.5vw,80px)/.98 'PP Formula','Inter',sans-serif;letter-spacing:-.02em;text-wrap:balance}
.hp-card{width:62vw}
.hp-media{display:block;border-radius:16px;overflow:hidden;aspect-ratio:16/10;background:rgba(6,14,19,.06)}
.hp-media img{width:100%;height:100%;object-fit:cover;display:block}
.hp-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-top:28px}
.hp-meta h3{margin:0 0 8px;font:400 clamp(26px,2.4vw,36px)/1.1 'PP Formula','Inter',sans-serif}
.hp-meta p{margin:0;font:400 16px/1.4 'Inter',sans-serif}
.hp-outro{width:55vw;align-items:flex-start;gap:48px;border-right:0}
.hp-outro p{margin:0;max-width:16em;font:400 clamp(26px,2.8vw,40px)/1.15 'PP Formula','Inter',sans-serif}
.hp .btn-line.btn-line{color:var(--nero);border-color:var(--nero);background:transparent}
.hp .btn-line.btn-line:hover{background:var(--nero);color:var(--bianco)}
@media (max-width:900px){
  .hp-sticky{position:static;height:auto;overflow-x:auto;scroll-snap-type:x mandatory;padding:64px 0}
  .hp-track{height:auto;padding:0 16px;gap:16px}
  .hp-slide{height:auto;scroll-snap-align:start;border:0;padding:0}
  .hp-intro,.hp-outro{width:78vw;gap:28px}
  .hp-card{width:82vw}
  .hp-meta{flex-direction:column;align-items:flex-start}
}

/* Cosa faccio gold + h2 50px ovunque */
.lp-section.cs-svc{background:#FFEABB;color:var(--nero)}
.cs-svc .cs-svc-text{grid-column:3/span 5}
.cs-svc .cs-svc-text .lp-h2{max-width:10em}
.cs-svc .cs-svc-lead{max-width:19em}
.lp-h2, .lp-section .lp-h2, .rv-title, .cs-svc .lp-h2{font-size:50px!important;line-height:1.05}
.lp-stats .stat-num{font-size:60px}
@media (max-width:900px){.lp-h2,.lp-section .lp-h2,.rv-title,.cs-svc .lp-h2{font-size:34px!important}}
.cs-svc .cs-acc{grid-column:8/-1}
.cs-acc-inner p{max-width:none}
/* Chi sono: numeri centrati tra linea e fine hero */
.lp-hero.pg.pg--cs{padding-bottom:56px!important}
.pg.pg--cs .pg-grid{padding-bottom:0!important}
.pg.pg--cs .pg-nums{padding-bottom:0}
.cs-svc .cs-acc-btn, .cs-svc .cs-acc-btn span{font-weight:600!important}
.cs-svc .cs-acc-more{text-decoration:none!important}
.cs-svc .cs-acc{border-top-color:rgba(6,14,19,.22)}
.cs-svc .cs-acc-item{border-bottom-color:rgba(6,14,19,.22)}
/* Portfolio su nero */
.hp{background:var(--nero);color:var(--bianco)}
.hp-slide{border-right-color:rgba(255,251,241,.16)}
.hp-media{background:rgba(255,251,241,.06)}
.hp .btn-line.btn-line{color:var(--bianco);border-color:var(--bianco);background:transparent}
.hp .btn-line.btn-line:hover{background:var(--bianco);color:var(--nero)}
/* Chi sono: numeri più ariosi */
.pg.pg--cs .pg-nums{padding-top:96px!important;margin-top:64px!important}
.lp-hero.pg.pg--cs{padding-bottom:96px!important}
/* Pulsante header: versione compatta */
.main-nav .nav-cta.nav-cta, button.nav-cta.nav-cta{font-size:12px!important;line-height:14px!important;padding:13px 20px 11px!important;min-height:40px!important;gap:10px!important;border-radius:6px}
/* Chi sono (header su sfondo chiaro): pulsante pieno nero */
body.cs-light .main-nav .nav-cta.nav-cta, body.cs-light .mobile-cta.mobile-cta{background:var(--nero)!important;color:var(--bianco)!important;border-color:var(--nero)!important}
body.cs-light .main-nav .nav-cta.nav-cta:hover{background:transparent!important;color:var(--nero)!important}

/* ===== Portfolio 3D ring (Chi sono) ===== */
.hp3{position:relative;background:var(--nero);color:var(--bianco);height:520vh}
.hp3-sticky{position:sticky;top:0;height:100vh;overflow:hidden}
.hp3-title{position:absolute;inset:0;margin:0;z-index:1;pointer-events:none;font:400 clamp(72px,12vw,190px)/.86 'PP Formula','Inter',sans-serif;letter-spacing:-.04em;text-transform:uppercase;display:flex;flex-direction:column;justify-content:center;padding:0 5vw}
.hp3-title span:nth-child(2){align-self:flex-end;margin-top:.1em}
.hp3-sub{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;text-align:center;max-width:15em;font:400 14px/1.3 'Inter',sans-serif;text-transform:uppercase;letter-spacing:.02em}
.hp3-stage{position:absolute;inset:0;z-index:2;perspective:1500px;perspective-origin:50% 40%;pointer-events:none}
.hp3-ring{position:absolute;left:50%;top:62%;width:0;height:0;transform-style:preserve-3d;will-change:transform}
.hp3-card{position:absolute;display:block;width:30vw;max-width:520px;aspect-ratio:16/10;margin:-9vw 0 0 -15vw;border-radius:12px;overflow:hidden;backface-visibility:hidden;pointer-events:auto;box-shadow:0 30px 60px rgba(0,0,0,.45);background:#111}
.hp3-card img{width:100%;height:100%;object-fit:cover;display:block}
.hp3-now{position:absolute;z-index:3;left:5vw;bottom:5vh;margin:0;display:flex;flex-direction:column;gap:4px;font:400 16px/1.3 'Inter',sans-serif}
.hp3-now strong{font:400 clamp(22px,2vw,30px)/1.1 'PP Formula','Inter',sans-serif}
.hp3-all{position:absolute!important;z-index:3;right:5vw;bottom:5vh}
.hp3 .btn-line.btn-line{color:var(--bianco);border-color:var(--bianco);background:transparent}
.hp3 .btn-line.btn-line:hover{background:var(--bianco);color:var(--nero)}
@media (max-width:900px){
  .hp3{height:auto;padding:72px 16px}
  .hp3-sticky{position:static;height:auto;overflow:visible}
  .hp3-title{position:static;padding:0;font-size:clamp(44px,13vw,80px)}
  .hp3-title span:nth-child(2){align-self:flex-start}
  .hp3-sub{position:static;transform:none;text-align:left;margin:20px 0 32px}
  .hp3-stage{position:static;perspective:none}
  .hp3-ring{position:static;width:auto;height:auto;transform:none!important;display:grid;gap:16px}
  .hp3-card{position:static;width:100%;max-width:none;margin:0;transform:none!important}
  .hp3-card[data-dup]{display:none}
  .hp3-now{display:none}
  .hp3-all{position:static!important;margin-top:32px}
}
.hp3-ring{top:40%!important}
.hp3-card{width:34vw!important;max-width:600px!important;margin:-10.6vw 0 0 -17vw!important}
.hp3-sub{left:5vw!important;top:16vh!important;transform:none!important;text-align:left!important;max-width:16em}

/* ===== CTA finale + footer stile Trionn (Chi sono) ===== */
.lp-section.cs-ft{background:var(--nero);color:var(--bianco);padding:clamp(40px,5vw,72px) 0 0}
.cs-ft-in{width:min(1290px,calc(100% - 48px));margin:0 auto;display:grid;grid-template-columns:repeat(12,1fr);column-gap:18px}
.cs-ft-label{grid-column:1/-1;margin:0;font:400 14px/1.2 'Inter',sans-serif;text-transform:uppercase}
.cs-ft-h{grid-column:1/span 7;margin:clamp(28px,3vw,48px) 0 0;font:400 clamp(56px,7.6vw,110px)/.95 'PP Formula','Inter',sans-serif;letter-spacing:-.03em;color:var(--bianco)}
.cs-ft-links{grid-column:9/-1;align-self:end;display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding-bottom:12px}
.cs-ft-info{grid-column:1/-1;display:flex;justify-content:flex-end;gap:clamp(48px,10vw,160px);margin-top:clamp(72px,9vw,140px)}
.cs-ft-info div{display:flex;flex-direction:column;gap:8px}
.cs-ft-info span{font:400 14px/1.2 'Inter',sans-serif;text-transform:uppercase;opacity:.6;margin-bottom:8px}
.cs-ft-info a{font:400 clamp(18px,1.6vw,22px)/1.3 'PP Formula','Inter',sans-serif;color:var(--bianco);text-decoration:none}
.cs-ft-info a:hover{opacity:.6}
.cs-ft-mark{grid-column:1/-1;width:100%;height:auto;display:block;margin-top:clamp(40px,6vw,96px);cursor:crosshair}
.cs-ft-mark .ftl{fill:var(--bianco);transition:height .6s cubic-bezier(.22,1,.36,1)!important}
.cs-ft-mark:hover .ftl{height:9px}
@media (max-width:900px){
  .cs-ft-h{grid-column:1/-1}
  .cs-ft-links{grid-column:1/-1;margin-top:32px}
  .cs-ft-info{justify-content:flex-start;gap:48px;margin-top:56px}
}
.rv-divider{display:none!important}

/* ===== Siti web · versione creativa ===== */
.sw-marq{overflow:hidden;background:var(--bianco);color:var(--nero);border-top:1px solid var(--nero);border-bottom:1px solid var(--nero);padding:22px 0}
.sw-marq .sw-track{display:flex;width:max-content;animation:swm 38s linear infinite!important}
.sw-marq span{font:400 clamp(40px,6vw,88px)/1 'PP Formula','Inter',sans-serif;text-transform:uppercase;letter-spacing:-.02em;padding:0 .5em;white-space:nowrap;display:flex;align-items:center}
.sw-marq span::after{content:"";width:.28em;height:.28em;background:currentColor;border-radius:50%;margin-left:1em}
@keyframes swm{to{transform:translateX(-50%)}}
.sw-ph{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;display:flex;align-items:flex-end;padding:16px;background:repeating-linear-gradient(135deg,rgba(6,14,19,.06) 0 14px,rgba(6,14,19,.1) 14px 15px),rgba(6,14,19,.05);border:1px dashed rgba(6,14,19,.35);color:var(--nero)}
.sw-ph span{font:400 12px/1.2 'Inter',sans-serif;text-transform:uppercase;letter-spacing:.06em;opacity:.7}
.lp-section--dark .sw-ph{background:repeating-linear-gradient(135deg,rgba(255,251,241,.05) 0 14px,rgba(255,251,241,.1) 14px 15px),rgba(255,251,241,.04);border-color:rgba(255,251,241,.35);color:var(--bianco)}
.sw-ph--tall{aspect-ratio:4/5}
/* problema */
.sw-prob .sw-prob-h{max-width:12em;font-size:clamp(50px,6.2vw,96px)!important;line-height:.98;margin:28px 0 0}
.sw-prob .sw-prob-lead{max-width:30em;margin:32px 0 0;font-size:clamp(18px,1.6vw,22px)}
.sw-prob-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:clamp(56px,6vw,96px)}
.sw-card{border:1px solid var(--nero);border-radius:16px;padding:18px 18px 32px}
.sw-card:nth-child(2){margin-top:clamp(32px,5vw,80px)}
.sw-card .sw-ph{aspect-ratio:16/10}
.sw-card h3{margin:28px 10px 0;font:400 clamp(26px,2.6vw,38px)/1.1 'PP Formula','Inter',sans-serif;color:var(--nero)}
.sw-card p{margin:14px 10px 0;max-width:28em;font:400 17px/1.5 'Inter',sans-serif;color:var(--nero)}
/* soluzione */
.sw-sol .sw-sol-h{max-width:13em;font-size:clamp(50px,6vw,92px)!important;line-height:.98;margin:28px 0 0}
.sw-sol .sw-sol-lead{max-width:34em;margin:32px 0 0}
.sw-steps{margin-top:clamp(56px,6vw,96px);border-top:1px solid rgba(255,251,241,.3)}
.sw-step{display:grid;grid-template-columns:minmax(120px,1.4fr) 4fr 4fr;gap:clamp(18px,3vw,48px);align-items:center;padding:clamp(32px,4vw,56px) 0;border-bottom:1px solid rgba(255,251,241,.3)}
.sw-step-n{font:400 clamp(72px,10vw,160px)/.9 'PP Formula','Inter',sans-serif;letter-spacing:-.04em}
.sw-step h3{margin:0;font:400 clamp(28px,3vw,44px)/1.08 'PP Formula','Inter',sans-serif;color:var(--bianco)}
.sw-step p{margin:18px 0 0;max-width:26em;font:400 17px/1.5 'Inter',sans-serif;color:var(--bianco)}
.sw-step:nth-child(even) .sw-ph{order:-1;grid-column:2}
.sw-step:nth-child(even) .sw-step-t{grid-column:3}
.sw-step:nth-child(even) .sw-step-n{display:none}
/* destinatari */
.sw-aud .sw-aud-h{max-width:14em;font-size:clamp(50px,6vw,92px)!important;line-height:.98;margin:28px 0 0}
.sw-aud .sw-aud-lead{max-width:32em;margin:32px 0 0}
.sw-aud-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:clamp(56px,6vw,96px);align-items:start}
.sw-aud-card--down{margin-top:clamp(40px,6vw,96px)}
.sw-aud-n{display:block;margin:22px 0 10px;font:400 14px/1 'Inter',sans-serif}
.sw-aud-card h3{margin:0;font:400 clamp(24px,2.2vw,32px)/1.1 'PP Formula','Inter',sans-serif;color:var(--nero)}
.sw-aud-card p{margin:14px 0 0;font:400 16px/1.5 'Inter',sans-serif;color:var(--nero)}
.sw-aud-card .sw-aud-tags{opacity:.6;font-size:14px}
.sw-aud-more{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-top:clamp(64px,7vw,112px);padding:36px 0;border-top:1px solid var(--nero);border-bottom:1px solid var(--nero);color:var(--nero);text-decoration:none}
.sw-aud-more strong{display:block;margin-bottom:10px;font:400 clamp(24px,2.4vw,34px)/1.1 'PP Formula','Inter',sans-serif}
.sw-aud-more span{max-width:44em;font:400 16px/1.5 'Inter',sans-serif}
.sw-aud-more .btn-arrow{width:40px;height:40px;flex:none;stroke:var(--nero)}
@media (max-width:900px){
  .sw-prob-grid,.sw-aud-grid{grid-template-columns:1fr}
  .sw-card:nth-child(2),.sw-aud-card--down{margin-top:0}
  .sw-step{grid-template-columns:1fr}
  .sw-step:nth-child(even) .sw-ph,.sw-step:nth-child(even) .sw-step-t{grid-column:auto;order:0}
  .sw-step:nth-child(even) .sw-step-n{display:block}
}
.sw-card h3,.sw-step h3,.sw-aud-card h3,.sw-aud-more strong,.sw-card p,.sw-step p,.sw-aud-card p{text-transform:none!important}

/* ===== Footer unico (tutte le pagine interne) ===== */
.ft{background:var(--nero);color:var(--bianco);padding:clamp(72px,8vw,128px) 0 28px;overflow:hidden}
.ft-in{width:min(1290px,calc(100% - 48px));margin:0 auto}
.ft-label{margin:0;font:400 14px/1.2 'Inter',sans-serif;text-transform:none;color:var(--bianco)}
.ft-h{margin:clamp(24px,2.6vw,40px) 0 0;max-width:12em;font:400 clamp(52px,5.6vw,80px)/1.02 'PP Formula','Inter',sans-serif;letter-spacing:-.03em;text-transform:none!important;color:var(--bianco)}
.ft-row{display:grid;grid-template-columns:repeat(12,1fr);column-gap:18px;align-items:start;margin-top:clamp(40px,4.5vw,64px)}
.ft-cta{grid-column:1/span 5}
.ft-contacts{grid-column:7/span 4;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.ft-social{grid-column:11/span 2;list-style:none;margin:0;padding:0;display:flex;gap:18px;justify-content:flex-end;align-items:center;min-height:54px}
.ft-contacts{min-height:54px;justify-content:center}
.ft-contacts a,.ft-social a{display:inline-flex;align-items:center;gap:12px;color:var(--bianco);text-decoration:none;text-transform:none!important;letter-spacing:0!important}
.ft-contacts a{font:400 clamp(17px,1.5vw,21px)/1.2 'PP Formula','Inter',sans-serif}
.ft-contacts i{font-size:22px}
.ft-social i{font-size:26px}
.ft-contacts a:hover,.ft-social a:hover{opacity:.6}
.ft .btn-line.btn-line{color:var(--bianco);border-color:var(--bianco);background:transparent}
.ft .btn-line.btn-line:hover{background:var(--bianco);color:var(--nero)}
.ft-ticker{overflow:hidden;width:100%;margin-top:clamp(64px,8vw,120px)}
.ft-track{display:flex;width:max-content;animation:ftk 60s linear infinite!important}
.ft-grp{display:flex;gap:clamp(30px,2vw,60px);padding-right:clamp(30px,2vw,60px)}
.ft-wm{flex:none;height:clamp(120px,14vw,200px);aspect-ratio:89/26;fill:none;stroke:var(--bianco);stroke-opacity:.25;stroke-width:1}
@keyframes ftk{to{transform:translateX(-50%)}}
.ft-legal{width:min(1290px,calc(100% - 48px));margin:clamp(28px,3vw,44px) auto 0;font:400 14px/1.4 'Inter',sans-serif;text-align:center;opacity:.7}
@media (max-width:900px){
  .ft-cta,.ft-contacts,.ft-social{grid-column:1/-1}
  .ft-contacts{margin-top:32px}
  .ft-social{justify-content:flex-start;margin-top:20px}
}
.ft-h{max-width:15em!important}
.ft-legal,.ft-label{text-transform:none!important;letter-spacing:0!important}
.ft-wm{stroke-opacity:.32}

/* Cosa faccio: titolo + testo a destra, competenze in riga */
.cs-svc2 .cs-svc-head{display:grid;grid-template-columns:repeat(12,1fr);column-gap:18px;align-items:end}
.cs-svc2 .cs-svc-label{grid-column:1/span 2;margin:0;align-self:start}
.cs-svc2 .cs-svc-title{grid-column:3/span 6;margin:0;max-width:10em}
.cs-svc2 .cs-svc-lead{grid-column:10/span 3;margin:0;font:400 18px/1.4 'Inter',sans-serif;color:var(--nero);text-transform:none}
.cs-row{list-style:none;margin:clamp(56px,6vw,96px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);column-gap:18px;border-top:1px solid rgba(6,14,19,.22)}
.cs-row-item{padding:28px 18px 0 0}
.cs-row-item h3{margin:0;font:600 clamp(20px,1.7vw,24px)/1.2 'PP Formula','Inter',sans-serif;color:var(--nero);text-transform:none}
.cs-row-item p{margin:16px 0 0;font:400 16px/1.5 'Inter',sans-serif;color:var(--nero);text-transform:none}
.cs-row-more{display:inline-block;margin-top:18px;font:400 14px/1 'Inter',sans-serif;color:var(--nero);text-decoration:none;text-transform:none}
.cs-row-more:hover{opacity:.6}
@media (max-width:900px){
  .cs-svc2 .cs-svc-head{display:block}
  .cs-svc2 .cs-svc-lead{margin-top:24px}
  .cs-row{grid-template-columns:1fr 1fr;row-gap:28px}
}
@media (max-width:560px){.cs-row{grid-template-columns:1fr}}
.cs-port .pj-grid{margin-top:clamp(40px,4vw,64px)}

/* === Competenze: numeri, link in Formula allineati in basso === */
.cs-svc2 .cs-svc-title{grid-column:3/span 7!important;max-width:none!important}
.cs-row{align-items:stretch}
.cs-row-item{display:flex;flex-direction:column}
.cs-row-n{display:block;margin-bottom:20px;font:400 14px/1 'Inter',sans-serif;color:var(--nero)}
.cs-row-more{margin-top:auto!important;padding-top:28px;display:inline-flex!important;align-items:center;gap:10px;font:500 clamp(18px,1.5vw,22px)/1.1 'PP Formula','Inter',sans-serif!important;color:var(--nero)!important;text-transform:none!important;text-decoration:none!important}
.cs-row-more .btn-arrow{width:20px;height:20px;stroke:var(--nero);flex:none}
/* === Portfolio carosello === */
.cs-port .cs-car-track{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.cs-port .cs-car-track::-webkit-scrollbar{display:none}
.cs-port .cs-car-card{flex:0 0 calc((100% - 18px) / 2 * .9);scroll-snap-align:start}
.cs-port .cs-car-card .lp-project-media{aspect-ratio:4/3;border-radius:16px;overflow:hidden;display:block}
.cs-car{margin-top:clamp(40px,4vw,64px)}
.cs-car-nav{display:flex;gap:12px;margin-top:28px}
.cs-car-btn{all:unset;box-sizing:border-box;width:43px;height:43px;border:1px solid var(--bianco);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--bianco);font-size:18px}
.cs-car-btn:hover{background:var(--bianco);color:var(--nero)}
.cs-car-btn[disabled]{opacity:.3;cursor:default;pointer-events:none}
@media (max-width:900px){.cs-port .cs-car-card{flex-basis:82%}}
/* === Footer: social con testo, logo grande, riga finale === */
.ft-cta{grid-column:1/span 4!important}
.ft-contacts{grid-column:6/span 4!important}
.ft-social{grid-column:10/span 3!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:14px!important;min-height:0!important}
.ft-contacts{justify-content:flex-start!important;min-height:0!important}
.ft-social a{font:400 clamp(17px,1.5vw,21px)/1.2 'PP Formula','Inter',sans-serif}
.ft-social i{font-size:22px}
.ft-wm{height:clamp(240px,26vw,380px)!important}
.ft-bar{width:min(1290px,calc(100% - 48px));margin:clamp(28px,3vw,44px) auto 0;display:flex;justify-content:space-between;gap:24px;font:400 14px/1.4 inherit;font-family:inherit}
.ft-bar,.ft-bar *{font-size:14px;letter-spacing:-.02em!important;text-transform:none!important;color:var(--bianco);opacity:1}
@media (max-width:900px){
  .ft-cta,.ft-contacts,.ft-social{grid-column:1/-1!important}
  .ft-contacts,.ft-social{margin-top:28px}
  .ft-bar{flex-direction:column;gap:6px}
}
.ft-bar{font:inherit!important}
.ft-bar .ft-legal{width:auto!important;margin:0!important;text-align:left!important;opacity:1!important}
.ft-bar .ft-where{white-space:nowrap;text-align:right;margin-left:auto}

/* === Metodo: 4 step con linea progressiva === */
.cs-steps{list-style:none;margin:clamp(56px,6vw,96px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);column-gap:18px;position:relative}
.cs-steps::before,.cs-steps::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(6,14,19,.22)}
.cs-steps::after{background:var(--nero);height:2px;top:-.5px;transform-origin:left center;transform:scaleX(var(--p,0))}
.cs-step{position:relative;padding:36px 18px 0 0;opacity:.28;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease!important}
.cs-step::before{content:"";position:absolute;left:0;top:-5px;width:10px;height:10px;border-radius:50%;background:var(--bianco);border:1px solid rgba(6,14,19,.4);transition:background .4s ease,border-color .4s ease!important}
.cs-step.is-on{opacity:1;transform:none}
.cs-step.is-on::before{background:var(--nero);border-color:var(--nero)}
.cs-step-n{display:block;margin-bottom:20px;font:400 14px/1 'Inter',sans-serif;color:var(--nero)}
.cs-step h3{margin:0;font:600 clamp(20px,1.7vw,24px)/1.2 'PP Formula','Inter',sans-serif;color:var(--nero);text-transform:none}
.cs-step p{margin:16px 0 0;font:400 16px/1.5 'Inter',sans-serif;color:var(--nero);text-transform:none}
@media (max-width:900px){
  .cs-steps{grid-template-columns:1fr 1fr;row-gap:36px}
}
@media (max-width:560px){.cs-steps{grid-template-columns:1fr}}

/* === Competenze: numeri grandi in Formula, link piccolo === */
.cs-row-n{font:400 clamp(44px,4.2vw,64px)/1 'PP Formula','Inter',sans-serif!important;letter-spacing:-.02em;margin-bottom:28px!important}
.cs-row-more{font:500 18px/1.1 'PP Formula','Inter',sans-serif!important;gap:8px!important}
.cs-row-more .btn-arrow{width:16px;height:16px}
/* === Stile link globale: sottolineatura 1px elastica + freccia che ruota === */
.cs-row-more span,.ft-contacts a span,.ft-social a span,.lp-text a,.lp-faq-a a,.lp-project-link,.sw-aud-more span strong,.lp-audience-more-text{
  background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% 1px;background-position:100% 100%;
  padding-bottom:3px;
  transition:background-size .75s cubic-bezier(.22,1.5,.36,1)!important}
.cs-row-more:hover span,.ft-contacts a:hover span,.ft-social a:hover span,.lp-text a:hover,.lp-faq-a a:hover,.lp-project-link:hover,.sw-aud-more:hover span strong,.lp-audience-more:hover .lp-audience-more-text{
  background-size:100% 1px;background-position:0% 100%}
.cs-row-more .btn-arrow,.sw-aud-more .btn-arrow,.lp-audience-more .btn-arrow{transition:transform .7s cubic-bezier(.22,1.5,.36,1)!important}
.cs-row-more:hover .btn-arrow,.sw-aud-more:hover .btn-arrow,.lp-audience-more:hover .btn-arrow{transform:rotate(-45deg)}
.ft-contacts a:hover,.ft-social a:hover{opacity:1!important}
/* === Portfolio: frecce in alto a destra === */
.cs-port-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
.cs-port-head .cs-car-nav{margin:0 0 6px}
/* Portfolio: il carosello esce fino al bordo destro dello schermo */
.cs-port{overflow:hidden}
.cs-port .cs-car-track{margin-right:calc(50% - 50vw);padding-right:calc(50vw - 50%)}
.cs-port .cs-car-card{flex:0 0 min(572px, calc((100% - 18px) / 2 * .9))}

/* === Footer: contatti a destra, barra con Bari·orario e social a icone === */
.ft-cta{grid-column:1/span 6!important}
.ft-contacts{grid-column:8/-1!important;align-items:flex-end!important;text-align:right}
.ft-contacts a{font-size:clamp(16px,1.25vw,18px)!important;flex-direction:row-reverse}
.ft-contacts i{font-size:20px!important}
.ft-bar{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center}
.ft-bar .ft-where{margin:0!important;text-align:center}
.ft-bar .ft-legal{justify-self:start}
.ft-icons{list-style:none;margin:0;padding:0;display:flex;gap:18px;justify-self:end}
.ft-icons a{color:var(--bianco);font-size:22px;display:inline-flex;transition:transform .5s cubic-bezier(.22,1.5,.36,1)!important}
.ft-icons a:hover{transform:translateY(-3px)}
.ft-icons i{font-size:22px}
.ft-bar .ft-icons,.ft-bar .ft-icons *{font-size:22px}
@media (max-width:900px){
  .ft-cta,.ft-contacts{grid-column:1/-1!important}
  .ft-contacts{align-items:flex-start!important;text-align:left;margin-top:28px}
  .ft-contacts a{flex-direction:row}
  .ft-bar{grid-template-columns:1fr;gap:10px}
  .ft-bar .ft-where{text-align:left}
  .ft-icons{justify-self:start}
}

/* === Pulsanti: sfondo che sale dal basso, freccia che si addrizza === */
:root:root:root:root:root:root body :is(.lp-btn,.lp-btn--submit,.pm-submit,.btn-line,.lp-btn-line,.nav-cta,.mobile-cta,.cs-car-btn){
  --b-bg:var(--bianco);--b-fg:var(--nero);--b-bd:var(--bianco);--b-hbg:var(--nero);--b-hfg:var(--bianco);
  position:relative!important;overflow:hidden!important;isolation:isolate;
  background:var(--b-bg)!important;color:var(--b-fg)!important;border-color:var(--b-bd)!important;
  transition:color .55s cubic-bezier(.22,1,.36,1)!important}
:root:root:root:root:root:root body :is(.btn-line,.lp-btn-line,.nav-cta,.mobile-cta,.cs-car-btn){
  --b-bg:transparent;--b-fg:var(--bianco);--b-bd:var(--bianco);--b-hbg:var(--bianco);--b-hfg:var(--nero)}
:root:root:root:root:root:root body :is(.lp-section--light,.pm) :is(.lp-btn,.lp-btn--submit,.pm-submit){
  --b-bg:var(--nero);--b-fg:var(--bianco);--b-bd:var(--nero);--b-hbg:var(--bianco);--b-hfg:var(--nero)}
:root:root:root:root:root:root body :is(.lp-section--light,.pm) :is(.btn-line,.lp-btn-line){
  --b-bg:transparent;--b-fg:var(--nero);--b-bd:var(--nero);--b-hbg:var(--nero);--b-hfg:var(--bianco)}
:root:root:root:root:root:root body.cs-light :is(.nav-cta,.mobile-cta){
  --b-bg:var(--nero);--b-fg:var(--bianco);--b-bd:var(--nero);--b-hbg:var(--bianco);--b-hfg:var(--nero)}
/* footer: invertito (pieno, in hover contorno) */
:root:root:root:root:root:root body .ft :is(.btn-line,.lp-btn-line){
  --b-bg:var(--bianco);--b-fg:var(--nero);--b-bd:var(--bianco);--b-hbg:var(--nero);--b-hfg:var(--bianco)}
:root:root:root:root:root:root body :is(.lp-btn,.lp-btn--submit,.pm-submit,.btn-line,.lp-btn-line,.nav-cta,.mobile-cta,.cs-car-btn)::before{
  content:"";position:absolute;inset:-1px;z-index:-1;background:var(--b-hbg);transform:translateY(101%);
  transition:transform .6s cubic-bezier(.22,1,.36,1)!important}
:root:root:root:root:root:root body :is(.lp-btn,.lp-btn--submit,.pm-submit,.btn-line,.lp-btn-line,.nav-cta,.mobile-cta,.cs-car-btn):hover{
  background:var(--b-bg)!important;color:var(--b-hfg)!important;border-color:var(--b-bd)!important}
:root:root:root:root:root:root body :is(.lp-btn,.lp-btn--submit,.pm-submit,.btn-line,.lp-btn-line,.nav-cta,.mobile-cta,.cs-car-btn):hover::before{transform:translateY(0)}
:root:root:root:root:root:root body :is(.lp-btn,.lp-btn--submit,.pm-submit,.btn-line,.lp-btn-line) .btn-arrow{transition:transform .7s cubic-bezier(.22,1.5,.36,1)!important}
:root:root:root:root:root:root body :is(.lp-btn,.lp-btn--submit,.pm-submit,.btn-line,.lp-btn-line):hover .btn-arrow{transform:rotate(-45deg)}
:root:root:root:root:root:root body :is(.lp-btn,.lp-btn--submit,.pm-submit,.btn-line,.lp-btn-line,.nav-cta,.mobile-cta) .btn-arrow{stroke:currentColor!important}
.cs-car-btn i{position:relative;z-index:1}
.cs-car-btn{min-height:0!important;width:43px!important;height:43px!important;padding:0!important}.cs-car-btn i{font-size:18px!important}

/* Scopri di più: nero, 16px/500; numeri più vicini al titolo, più aria dalla linea */
.cs-row-item{padding-top:58px!important}
.cs-row-n{margin-bottom:10px!important}
.cs-row .cs-row-more,.cs-row .cs-row-more:hover{font:500 16px/1.1 'PP Formula','Inter',sans-serif!important;color:var(--nero)!important;opacity:1!important}
.cs-row .cs-row-more .btn-arrow{stroke:var(--nero)!important;stroke-width:2.4!important;transform:translateY(-2px)}
.cs-row .cs-row-more:hover .btn-arrow{transform:translateY(-2px) rotate(-45deg)}

/* Nav: hover a scambio lettere come in home */
.main-nav .nav-word{position:relative;display:block;overflow:hidden;line-height:1.2}
.main-nav .nav-layer{display:flex;white-space:nowrap}
.main-nav .nav-layer-hover{position:absolute;top:100%;left:0;color:var(--oro)}
.main-nav .nav-char{display:inline-block;transition:transform .5s cubic-bezier(.22,1,.36,1)!important;transition-delay:calc(var(--char-index)*.035s)!important}
.main-nav a:hover .nav-layer-current .nav-char,.main-nav a:focus-visible .nav-layer-current .nav-char{transform:translateY(-120%)}
.main-nav a:hover .nav-layer-hover .nav-char,.main-nav a:focus-visible .nav-layer-hover .nav-char{transform:translateY(-100%)}
.cs-light .main-nav .nav-layer-hover{color:var(--nero)}

/* fix: il pulsante header resta posizionato in assoluto (a destra, centrato in verticale) */
@media (min-width:901px){:root:root:root:root:root:root body .main-nav .nav-cta{position:absolute!important;right:0!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important}}

/* Carosello: parte allineato al titolo, in scorrimento esce fino al bordo sinistro del monitor */
.cs-port .cs-car-track{margin-left:calc(50% - 50vw);padding-left:calc(50vw - 50%)}

/* Footer: contatti allineati a sinistra tra loro, gruppo a destra; icone più grandi; logo più lento e più in basso */
.ft-contacts{justify-self:end;width:fit-content;align-items:flex-start!important;text-align:left!important}
.ft-contacts a{flex-direction:row!important}
.ft-contacts i{font-size:24px!important}
.ft-icons{gap:20px}
.ft-icons a,.ft-icons i,.ft-bar .ft-icons,.ft-bar .ft-icons *{font-size:26px}
.ft-track{animation:ftk 110s linear infinite!important}
.ft-ticker{margin-top:calc(clamp(64px,8vw,120px) + 20px)!important}
.ft-bar .ft-where{justify-self:start;text-align:left!important}
.ft-bar .ft-legal{justify-self:center!important;text-align:center!important}
@media (max-width:900px){.ft-bar .ft-legal{justify-self:start!important;text-align:left!important}}
.ft-bar{grid-template-columns:minmax(0,1fr) max-content minmax(0,1fr)!important}
.ft-bar .ft-where{order:1}.ft-bar .ft-legal{order:2;white-space:nowrap!important}.ft-bar .ft-icons{order:3}
@media (max-width:900px){.ft-bar{grid-template-columns:1fr!important}.ft-bar .ft-legal{white-space:normal!important}}

/* Footer: blocco "Lavoriamo insieme" +50px, logo resta a +20px, ultima riga 10px più vicina al bordo */
.ft{padding-top:calc(clamp(72px,8vw,128px) + 50px)!important;padding-bottom:18px!important}
.ft-ticker{margin-top:calc(clamp(64px,8vw,120px) + 20px - 50px)!important}

/* Testimonianze: +150 in alto a destra, loghi allineati al titolo */
.rv-head{position:relative}
.rv-title{grid-column:3 / span 7!important}
.rv-stats{display:contents!important}
.rv-total{position:absolute;top:0;right:0;margin:0}
.rv-platforms{grid-column:3 / span 7;margin-top:40px;width:420px;justify-self:start}
@media (max-width:900px){
  .rv-total{position:static;margin-top:32px}
  .rv-title,.rv-platforms{grid-column:1/-1!important}
  .rv-stats{display:flex!important}
}

/* Metodo: titolo più stretto, più aria prima della linea */
.cs-met .cs-svc-title{grid-column:3 / span 5!important}
.cs-met .cs-steps{margin-top:clamp(96px,10vw,160px)}
@media (max-width:900px){.cs-met .cs-svc-title{grid-column:auto!important}}
.cs-step{opacity:0!important}
.cs-step.is-on{opacity:1!important}
.cs-step::before{opacity:0;transition:opacity .4s ease,background .4s ease,border-color .4s ease!important}
.cs-step.is-on::before{opacity:1}

/* Testimonianze: h2 40px, +150 sotto una linea sottile, loghi vicini */
.rv-title,.rv-section .rv-title{font-size:40px!important;line-height:1.1!important;grid-column:3 / span 8!important}
.rv-stats{display:flex!important;grid-column:3 / -1;align-items:center;justify-content:flex-start;gap:56px;margin:48px 0 0!important;padding-top:32px;border-top:1px solid rgba(255,251,241,.22);width:auto!important}
.rv-total{position:static!important;margin:0}
.rv-platforms{grid-column:auto;margin:0!important;width:auto!important;justify-self:auto;flex:none;gap:36px;justify-content:flex-start}
@media (max-width:900px){.rv-title{font-size:30px!important;grid-column:1/-1!important}.rv-stats{grid-column:1/-1;flex-direction:column;align-items:flex-start;gap:28px}.rv-platforms{flex-wrap:wrap;gap:24px}}
@media (min-width:901px){.rv-stats{width:fit-content!important;justify-self:start}}

/* Testimonianze: come da riferimento — divisore verticale, 90px sopra e sotto la riga del +150 */
.rv-stats{border-top:0!important;padding-top:0!important;margin:90px 0 0!important;gap:0!important;align-items:center}
.rv-section .rv-divider,.rv-stats .rv-divider{display:block!important;width:1px;height:96px;background:rgba(255,251,241,.22);margin:0 56px;flex:none}
.rv-platforms{gap:64px!important}
.rv-section .rv-ticker{margin-top:90px!important}
@media (max-width:900px){.rv-stats{margin-top:48px!important}.rv-stats .rv-divider{display:none!important}.rv-section .rv-ticker{margin-top:48px!important}}
.rv-section .rv-divider,.rv-stats .rv-divider{height:auto!important;align-self:stretch}
.rv-total-side{width:auto!important}

/* Intestazioni sezioni (Cosa faccio, Metodo): stessa impostazione; sub text sulla base dell'ultima riga del titolo */
.cs-svc2 .cs-svc-head{align-items:last baseline}
.cs-svc2 .cs-svc-label{align-self:first baseline}
.cs-svc2 .cs-svc-title{grid-column:3 / span 5!important}
.cs-svc2 .cs-svc-lead{grid-column:10 / span 3!important}
@media (max-width:900px){.cs-svc2 .cs-svc-title{grid-column:auto!important}.cs-svc2 .cs-svc-lead{grid-column:auto!important}}

/* Cosa faccio: 4 card nere */
.cs-svc2 .cs-row{border-top:0!important;margin-top:clamp(56px,5vw,80px)!important;column-gap:18px}
.cs-svc2 .cs-row .cs-row-item{background:var(--nero);color:var(--bianco);border-radius:14px;padding:36px 32px 32px!important}
.cs-svc2 .cs-row .cs-row-item .cs-row-n,.cs-svc2 .cs-row .cs-row-item h3,.cs-svc2 .cs-row .cs-row-item p{color:var(--bianco)!important}
.cs-svc2 .cs-row .cs-row-item p{opacity:.78}
.cs-svc2 .cs-row .cs-row-more,.cs-svc2 .cs-row .cs-row-more:hover{color:var(--bianco)!important}
.cs-svc2 .cs-row .cs-row-more .btn-arrow{stroke:var(--bianco)!important}

/* Cosa faccio: icona al posto del numero, 100px di spazio prima del titolo */
.cs-svc2 .cs-row .cs-row-ic{display:block;font-size:48px;line-height:1;color:var(--bianco);margin-bottom:100px}

/* Cosa faccio: card che ruotano su asse verticale, testo solo sul retro */
.cs-svc2 .cs-row .cs-row-item{background:none!important;padding:0!important;border-radius:0}
.cs-flip{perspective:1400px;aspect-ratio:4/5;outline:0}
.cs-flip-in{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .95s cubic-bezier(.22,1,.36,1)!important}
.cs-flip:hover .cs-flip-in,.cs-flip:focus-within .cs-flip-in,.cs-flip.is-flipped .cs-flip-in{transform:rotateY(180deg)}
.cs-flip-front,.cs-flip-back{position:absolute;inset:0;border-radius:14px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.cs-flip-front{display:flex;flex-direction:column;justify-content:space-between;padding:32px;color:var(--bianco)}
.cs-flip-front img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.cs-flip-front::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(6,14,19,.35) 0%,rgba(6,14,19,.05) 40%,rgba(6,14,19,.78) 100%)}
.cs-flip-front>*:not(img){position:relative;z-index:2}
.cs-svc2 .cs-row .cs-flip-front .cs-row-ic{margin:0;font-size:48px}
.cs-svc2 .cs-row .cs-flip-front h3{margin:0;font:600 clamp(24px,2vw,30px)/1.1 'PP Formula','Inter',sans-serif;color:var(--bianco)!important}
.cs-flip-back{transform:rotateY(180deg);background:var(--nero);color:var(--bianco);display:flex;flex-direction:column;justify-content:space-between;padding:32px}
.cs-svc2 .cs-row .cs-flip-back p{margin:0;font:400 16px/1.5 'Inter',sans-serif;color:var(--bianco)!important;opacity:.85}
.cs-svc2 .cs-row .cs-flip-back .cs-row-more{margin:0!important;padding:0!important;align-self:flex-start}
@media (max-width:900px){.cs-flip{aspect-ratio:4/4.4}}

/* Flip: titoli più piccoli (editoriale), link cliccabile/hover sul retro */
.cs-svc2 .cs-row .cs-flip-front h3{font:500 clamp(18px,1.4vw,20px)/1.2 'PP Formula','Inter',sans-serif;letter-spacing:0}
.cs-flip-back{pointer-events:none}
.cs-flip:hover .cs-flip-back,.cs-flip:focus-within .cs-flip-back,.cs-flip.is-flipped .cs-flip-back{pointer-events:auto}
.cs-flip:hover .cs-flip-front,.cs-flip:focus-within .cs-flip-front,.cs-flip.is-flipped .cs-flip-front{pointer-events:none}

/* Flip: titolo in basso, in gold */
.cs-flip-front{justify-content:flex-end!important}
.cs-svc2 .cs-row .cs-flip-front h3{color:#FFEABB!important}

/* Cosa faccio: card con zoom foto, titolo che sale e testo che entra dal basso (niente rotazione) */
.cs-card{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:var(--nero);outline:0;cursor:default}
.cs-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;transform:scale(1);transition:transform 1.1s cubic-bezier(.22,1,.36,1),opacity .7s ease!important}
.cs-card:hover>img,.cs-card:focus-within>img,.cs-card.is-open>img{transform:scale(1.1);opacity:.35}
.cs-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,14,19,.1) 30%,rgba(6,14,19,.7) 100%);pointer-events:none}
.cs-card-body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:32px;display:flex;flex-direction:column}
.cs-svc2 .cs-row .cs-card-body h3{margin:0;font:500 clamp(18px,1.4vw,20px)/1.2 'PP Formula','Inter',sans-serif;letter-spacing:0;color:#FFEABB!important}
.cs-card-more{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(24px);transition:grid-template-rows .7s cubic-bezier(.22,1,.36,1),opacity .6s ease,transform .8s cubic-bezier(.22,1,.36,1)!important}
.cs-card-more-in{overflow:hidden;min-height:0}
.cs-card:hover .cs-card-more,.cs-card:focus-within .cs-card-more,.cs-card.is-open .cs-card-more{grid-template-rows:1fr;opacity:1;transform:none}
.cs-svc2 .cs-row .cs-card-more p{margin:16px 0 0;font:400 16px/1.5 'Inter',sans-serif;color:var(--bianco)!important;opacity:1}
.cs-svc2 .cs-row .cs-card-more .cs-row-more{margin:20px 0 0!important;padding:0!important}
@media (max-width:900px){.cs-card{aspect-ratio:4/4.6}}

/* Footer: titolo su due righe (in mente? scende), contatti in alto a destra all'altezza del titolo, pulsante sotto */
@media (min-width:901px){
  .ft-in{display:grid;grid-template-columns:repeat(12,1fr);column-gap:18px;align-items:start}
  .ft-in .ft-label{grid-column:1/-1;grid-row:1}
  .ft-in .ft-h{grid-column:1/-1;grid-row:2;max-width:none!important}
  .ft-in .ft-row{display:contents}
  .ft-in .ft-contacts{grid-column:9/-1!important;grid-row:2;align-self:start;justify-self:end;margin:clamp(34px,3.4vw,52px) 0 0!important;z-index:2}
  .ft-in .ft-cta{grid-column:1/span 6!important;grid-row:3;margin-top:clamp(40px,4.5vw,64px)}
}

/* Footer: titolo su 3 righe; contatti + pulsante impilati nella colonna destra */
@media (min-width:901px){
  .ft-in .ft-row{display:flex!important;flex-direction:column;align-items:flex-start;gap:36px;grid-column:9/-1;grid-row:2;justify-self:end;margin:clamp(34px,3.4vw,52px) 0 0}
  .ft-in .ft-row .ft-contacts{order:1;margin:0!important;justify-self:auto;grid-column:auto!important;grid-row:auto}
  .ft-in .ft-row .ft-cta{order:2;margin:0!important;grid-column:auto!important;grid-row:auto}
}

/* Footer: pulsante gold, allineato alla base dell'ultima riga del titolo */
:root:root:root:root:root:root:root body .ft :is(.btn-line,.lp-btn-line){--b-bg:#FFEABB;--b-fg:var(--nero);--b-bd:#FFEABB;--b-hbg:var(--nero);--b-hfg:#FFEABB}
@media (min-width:901px){
  .ft-in .ft-row{align-self:stretch;justify-content:space-between;margin-top:0!important}
  .ft-in .ft-row .ft-contacts{margin-top:clamp(34px,3.4vw,52px)!important}
  .ft-in .ft-row .ft-cta{margin-bottom:calc(clamp(52px,5.6vw,80px) * .17)!important}
}
.ft-bar{margin-top:0!important}

/* Metodo globale: 3 step e variante scura */
.cs-steps.cs-steps--3{grid-template-columns:repeat(3,1fr)}
.cs-met.lp-section--dark .cs-svc-label,.cs-met.lp-section--dark .cs-svc-title,.cs-met.lp-section--dark .cs-svc-lead,
.cs-met.lp-section--dark .cs-step-n,.cs-met.lp-section--dark .cs-step h3,.cs-met.lp-section--dark .cs-step p{color:var(--bianco)!important}
.cs-met.lp-section--dark .cs-steps::before{background:rgba(255,251,241,.22)}
.cs-met.lp-section--dark .cs-steps::after{background:var(--bianco)}
.cs-met.lp-section--dark .cs-step::before{background:var(--nero);border-color:rgba(255,251,241,.4)}
.cs-met.lp-section--dark .cs-step.is-on::before{background:var(--bianco);border-color:var(--bianco)}

/* FAQ globale: domande più grandi e più pesanti */
.lp-faq-q span{font-size:clamp(20px,1.7vw,24px)!important;font-weight:500!important;line-height:1.25!important}

/* FAQ: apertura/chiusura fluida */
html.js .lp-faq-a{transition:max-height .75s cubic-bezier(.22,1,.36,1),opacity .5s ease!important}
html.js .lp-faq-a .lp-text{transform:translateY(-10px);transition:transform .75s cubic-bezier(.22,1,.36,1)!important}
html.js .lp-faq-item.is-open .lp-faq-a .lp-text{transform:none}
.lp-faq-icon::before,.lp-faq-icon::after{transition:transform .6s cubic-bezier(.22,1,.36,1),opacity .4s ease!important}
.lp-faq-q span{transition:opacity .3s ease!important}

/* Hero Branding = hero Chi sono: due paragrafi + pulsante al posto delle recensioni */
.pg--cs .pg-lead-group{display:flex;flex-direction:column;gap:24px}
.pg--cs .pg-lead-group .pg-lead{margin:0}
.pg--cs .pg-body .lp-cta-row{margin:0}
:root:root:root:root:root:root:root body .pg--cs :is(.lp-btn){--b-bg:var(--nero);--b-fg:var(--bianco);--b-bd:var(--nero);--b-hbg:var(--bianco);--b-hfg:var(--nero)}
:root:root:root:root:root:root:root body .pg--cs :is(.btn-line,.lp-btn-line){--b-bg:transparent;--b-fg:var(--nero);--b-bd:var(--nero);--b-hbg:var(--nero);--b-hfg:var(--bianco)}

/* Branding hero: secondo paragrafo 18px Inter */
.pg--cs .pg-lead-group .pg-lead.pg-lead--sm{font-family:'Inter',sans-serif!important;font-size:18px!important;line-height:28px!important;font-weight:400!important}
.pg--cs .pg-lead-group .pg-lead.pg-lead--sm{margin-top:20px!important}
.pg--cs .pg-body:has(.pg-lead--sm){gap:63px!important}
.pg--cs .pg-lead-group .pg-lead.pg-lead--sm{max-width:410px!important}

/* Progetti e Contatti: meno aria sotto il titolo */
.pg--proj ~ .lp-flow > .lp-section:first-child{padding-top:120px!important}
@media (max-width:900px){.pg--proj ~ .lp-flow > .lp-section:first-child{padding-top:72px!important}}

/* FAQ: fisarmonica più stretta di una colonna, più aria dal titolo */
@media (min-width:901px){
  .lp-split--faq > :last-child{grid-column:7 / span 6!important}
}

/* Footer contatti: testo 3px più in basso per centrarlo sulle icone */
.ft-contacts a span{position:relative;top:3px}

/* Label di sezione: tutte PP Formula 14px */
:root body .lp-label,:root body .rv-label,:root body .pg-label,:root body .ft-label,:root body .cs-ft-label{font-family:'PP Formula','Inter',sans-serif!important;font-size:14px!important;font-weight:500!important}

/* H1 di Progetti e Contatti: stessa dimensione di Chi sono e Branding (100px) */
@media (min-width:901px){
  .pg.pg--proj .pg-h1{font-size:min(100px,calc(100 * var(--u)))!important;line-height:1!important;grid-column:1 / span 9!important}
}

/* Progetti: titolo meno compresso + numero sotto l'intro */
@media (min-width:901px){
  .pg.pg--proj .pg-h1{line-height:1.1!important}
  .pg--proj .pg-intro-wrap{grid-column:10 / span 3;grid-row:1;align-self:end;display:flex;flex-direction:column;gap:44px}
  .pg--proj .pg-intro-wrap .pg-intro{margin:0}
}
.pg-intro-num{display:flex;flex-direction:column;gap:12px;color:var(--bianco)}
@media (max-width:900px){.pg-intro-num{margin-top:32px}}

/* PROVA: tutti i titoli peso 600 (togliere questo blocco per tornare indietro) */
:root body :is(h1,h2,.pg-h1,.lp-h2,.ft-h,.pm-title,.rv-title,.cs-svc-title){font-weight:600!important}

/* Metodo: pallini sempre visibili sulla barra (vuoti, bordo come la barra); si riempiono quando la barra li raggiunge */
.cs-step::before{opacity:1!important;width:12px;height:12px;top:-6px;left:0;box-sizing:border-box;background:var(--bianco);border:1.5px solid rgba(6,14,19,.28);transform:scale(1);transition:background .45s ease,border-color .45s ease,transform .5s cubic-bezier(.34,1.56,.64,1)!important}
.cs-step.is-on::before{background:var(--nero);border-color:var(--nero);transform:scale(1.25)}
.cs-met.lp-section--dark .cs-step::before{background:var(--nero);border-color:rgba(255,251,241,.28)}
.cs-met.lp-section--dark .cs-step.is-on::before{background:var(--bianco);border-color:var(--bianco)}
/* l'opacità passa dal li ai contenuti, così il pallino resta sempre visibile */
.cs-step,.cs-step.is-on{opacity:1!important;transform:none!important}
.cs-step > *{opacity:0!important;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease!important}
.cs-step.is-on > *{opacity:1!important;transform:none}
.cs-step.is-on > h3{transition-delay:.08s!important}
.cs-step.is-on > p{transition-delay:.16s!important}

/* pallino: si gonfia e si sgonfia in modo elastico quando la barra lo raggiunge */
@keyframes csDotElastic{0%{transform:scale(1)}28%{transform:scale(1.9)}48%{transform:scale(.8)}64%{transform:scale(1.25)}80%{transform:scale(.94)}100%{transform:scale(1)}}
.cs-step.is-on::before{transform:scale(1)!important;animation:csDotElastic .85s ease-out both!important}

/* numeri degli step / elenchi: PP Formula */
:root body .cs-step-n,:root body .lp-num{font-family:'PP Formula','Inter',sans-serif!important}
.pg-rev-strong{font-weight:600!important;font-family:inherit}

/* Selezione testo: visibile sia su sfondo chiaro (nero) sia su sfondo scuro (oro) */
::selection{background:var(--nero);color:var(--bianco)}
.lp-section--dark ::selection,.ft ::selection,.pg--short ::selection,.pg--nophoto ::selection,.site-header ::selection{background:#FFEABB;color:var(--nero)}

/* Form contatti: leggermente più stretto (allineato a destra); testo privacy più piccolo */
@media (min-width:901px){.lp-split--form > .lp-form-card{width:88%;justify-self:end}}
:root body .lp-field.ct-consent label,:root body .lp-field.ct-consent label span,:root body .lp-section--dark .lp-form-card .lp-field.ct-consent label span{font-size:13px!important;line-height:1.4}

/* Form contatti: titolo, privacy a 16px (testo più breve), meno padding sotto */
:root body .lp-field.ct-consent label,:root body .lp-field.ct-consent label span,:root body .lp-section--dark .lp-form-card .lp-field.ct-consent label span{font-size:16px!important}
.lp-form-card .lp-form-title{font:600 clamp(24px,2.2vw,32px)/1.15 'PP Formula','Inter',sans-serif;letter-spacing:-.03em;margin:0 0 8px;color:var(--nero)}
.lp-form-card{padding-bottom:clamp(20px,2vw,28px)!important}
.lp-form-card .lp-form-status:empty{display:none}

/* Form contatti: asterisco sui campi obbligatori, padding sotto la card più equilibrato + margine */
.lp-form-card{padding-bottom:36px!important;margin-bottom:30px}
.lp-form .lp-field:has(> [required]):not(.ct-consent) > label::after{content:" *"}

/* Contatti: link con la solita linea da 1px elastica in hover */
:root body :is(.ct-list a,.ct-social a){text-decoration:none!important;
  background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0% 1px;background-position:100% 100%;
  padding-bottom:3px;transition:background-size .75s cubic-bezier(.22,1.5,.36,1)!important}
:root body :is(.ct-list a:hover,.ct-social a:hover){text-decoration:none!important;background-size:100% 1px;background-position:0% 100%}
.lp-form-card .lp-form-title{margin-bottom:34px!important}

/* Pulsante header: sempre pieno (bianco su header scuro, nero su header chiaro); in hover il riempimento si inverte */
:root:root:root:root:root:root:root body :is(.nav-cta,.mobile-cta){--b-bg:var(--bianco);--b-fg:var(--nero);--b-bd:var(--bianco);--b-hbg:var(--nero);--b-hfg:var(--bianco)}
:root:root:root:root:root:root:root:root body.cs-light .nav-cta{--b-bg:var(--nero);--b-fg:var(--bianco);--b-bd:var(--nero);--b-hbg:var(--bianco);--b-hfg:var(--nero)}

/* Footer, riga finale: stesso font e stessa dimensione per tutti i testi */
:root body .ft-bar .ft-where,:root body .ft-bar .ft-legal,:root body .ft-bar .ft-legal *{font-family:'PP Formula','Inter',sans-serif!important;font-size:14px!important;font-weight:400!important;line-height:1.4!important;letter-spacing:-.02em!important}

/* Footer, riga finale: grigio (icone social comprese, bianche in hover) */
:root:root body .ft-bar,:root:root body .ft-bar .ft-where,:root:root body .ft-bar .ft-legal,:root:root body .ft-bar .ft-legal *,:root:root body .ft-bar .ft-icons a,:root:root body .ft-bar .ft-icons i{color:rgba(255,251,241,.5)!important;transition:color .4s ease,transform .5s cubic-bezier(.22,1.5,.36,1)!important}
:root:root body .ft-bar .ft-icons a:hover,:root:root body .ft-bar .ft-icons a:hover i{color:var(--bianco)!important}

/* Popup richiesta: pulsante tutto maiuscolo, a destra, freccia che ruota in hover */
:root:root body .pm .pm-submit,:root:root body .pm .pm-submit span{text-transform:uppercase!important}
:root:root body .pm .pm-submit{justify-self:end}
:root:root body .pm .pm-submit svg{transition:transform .7s cubic-bezier(.22,1.5,.36,1)!important}
:root:root body .pm .pm-submit:hover svg{transform:rotate(-45deg)!important}

/* Popup: asterisco sui campi obbligatori (nome, email, messaggio) */
.pm .pm-field:not(.pm-consent):has(> [required]) > label::after{content:" *"}

/* Popup: consenso privacy e pulsante sulla stessa riga */
@media (min-width:601px){
  :root body .pm .pm-form{grid-template-columns:minmax(0,1fr) auto}
  :root body .pm .pm-form > *{grid-column:1/-1}
  :root body .pm .pm-form > .pm-consent{grid-column:1;align-self:center}
  :root body .pm .pm-form > .pm-submit{grid-column:2;align-self:center;justify-self:end}
}
.main-nav .nav-cta.nav-cta, button.nav-cta.nav-cta{font-size:12px!important;line-height:14px!important;padding:13px 20px 11px!important;min-height:40px!important;gap:10px!important;border-radius:6px}

/* Tendina Servizi: entra dal basso verso l'alto con dissolvenza */
:root:root body .nav-dd .nav-sub{display:block!important;visibility:hidden;opacity:0;pointer-events:none;
  transform:translateX(-50%) translateY(22px)!important;
  transition:opacity .35s ease,transform .55s cubic-bezier(.22,1,.36,1),visibility 0s linear .55s!important}
:root:root body .nav-dd:hover .nav-sub,:root:root body .nav-dd:focus-within .nav-sub{visibility:visible;opacity:1;pointer-events:auto;
  transform:translateX(-50%) translateY(0)!important;
  transition:opacity .35s ease,transform .55s cubic-bezier(.22,1,.36,1),visibility 0s!important}

/* Numeri hero: più stretti (letter-spacing negativo) e gap ridotto, così restano nella larghezza della colonna */
:root body .pg .pg-num{letter-spacing:-.07em!important}
@media (min-width:1101px){:root body .pg--cs .pg-nums{gap:clamp(40px,6.2vw,96px)!important}}
@media (min-width:1101px){:root body .pg--cs .pg-nums{justify-content:space-between!important}}
/* Testimonianze: titolo h2 classico (50px), +150 a 50px, divisore +10% */
.rv-title,.rv-section .rv-title{font-size:50px!important;line-height:1.05!important}
@media (max-width:900px){.rv-title,.rv-section .rv-title{font-size:34px!important}}
.rv-total-num{font-size:50px!important}
@media (min-width:901px){.rv-section .rv-divider,.rv-stats .rv-divider{height:64px!important;align-self:center!important}}
.pj-more{display:flex;justify-content:center;margin-top:64px}
.ct-map iframe{filter:none!important}
/* Mappa contatti: versione scura nei toni del brand (niente fluo) */
.ct-map iframe{filter:grayscale(1) invert(1) contrast(.95) brightness(.78)!important}
.ct-map::after{content:''!important;position:absolute;inset:0;background:#123347;mix-blend-mode:color;pointer-events:none}
/* Esito invio moduli */
.lp-form-status.is-ok,.pm-status.is-ok{font-weight:500}
.lp-form-status.is-err,.pm-status.is-err{color:#b3261e}
.pm .pm-status.is-err{color:#ff8a80}
/* Contatti: form in alto, allineato all'h1 */
.pg--short.ct-hero{padding-bottom:120px!important}
@media (min-width:901px){
  .pg.pg--proj.ct-hero .pg-h1{grid-column:1 / span 6!important;grid-row:1!important}
  .ct-hero .ct-info{grid-column:1 / span 6;grid-row:2;margin-top:88px}
  .ct-hero .lp-form-card{grid-column:7 / span 6;grid-row:1 / span 2;align-self:start;width:88%;justify-self:end;margin:0}
}
@media (max-width:900px){
  .ct-hero .pg-h1,.ct-hero .ct-info,.ct-hero .lp-form-card{grid-column:1 / -1!important;grid-row:auto!important}
  .ct-hero .ct-info{margin-top:48px}
  .ct-hero .lp-form-card{margin-top:56px}
}
.ct-hero .lp-form-card,.ct-hero .lp-form-card label,.ct-hero .lp-form-card input,.ct-hero .lp-form-card textarea,.ct-hero .lp-form-card .lp-form-title{color:var(--nero)}
.ct-hero .lp-form-card .ct-consent label span{color:var(--nero)}
/* Contatti: nessun asterisco; campo non compilato = linea rossa */
:root body .lp-form .lp-field > label::after{content:none!important}
:root body .lp-form .lp-field .is-invalid,:root body .lp-form .lp-field input:user-invalid,:root body .lp-form .lp-field textarea:user-invalid{border-bottom-color:#d93025!important}
:root body .lp-form .lp-field.ct-consent input.is-invalid{border-color:#d93025!important;box-shadow:0 0 0 1px #d93025}
/* Esito invio: box colorato */
.lp-form-status:not(:empty),.pm-status:not(:empty){padding:12px 16px;border-radius:8px;margin-top:16px;font-size:15px;line-height:1.4}
.lp-form-status.is-ok{background:rgba(46,160,67,.16);color:#1b5e2b}
.lp-form-status.is-err{background:rgba(217,48,37,.12);color:#a3271d}
.pm-status.is-ok{background:rgba(46,160,67,.22);color:#a8ecb5}
.pm-status.is-err{background:rgba(255,99,88,.18);color:#ffb9b2}
/* Contatti: blocco contatti nell'hero scuro */
:root body .ct-hero .ct-info :is(.ct-list dt,.ct-list dd,.ct-list a,.ct-social,.ct-social a,.ct-social span,.lp-form-intro){color:var(--bianco)!important}
/* Popup: stesso aspetto del form Contatti (sfondo chiaro) — messaggi, righe rosse, niente asterischi */
.pm-status.is-ok{background:rgba(46,160,67,.16)!important;color:#1b5e2b!important}
.pm-status.is-err,.pm .pm-status.is-err{background:rgba(217,48,37,.12)!important;color:#a3271d!important}
:root body .pm .pm-field > label::after{content:none!important}
:root body .pm .pm-field :is(input,textarea).is-invalid,:root body .pm .pm-field :is(input,textarea):user-invalid{border-bottom-color:#d93025!important}
:root body .pm .pm-consent input.is-invalid{border-color:#d93025!important;box-shadow:0 0 0 1px #d93025}
