/**
 * @file
 * Subtheme specific CSS.
 */
/**
 * @file
 * Stili personalizzati per il subtheme Barrio basati sul sito originale.
 */

/* 1. Variabili Globali (Colori e Font) */
:root {
  /* Palette Colori estratta dal file WordPress */
  --wp--preset--color--black: #000;
  --wp--preset--color--white: #fff;
  --wp--preset--color--cyan-bluish-gray: #abb8c3;
  --wp--preset--color--vivid-red: #f9a232;

  /* Ombre (Shadows) *//**
 * @file
 * Subtheme specific CSS.
 */
/**
 * @file
 * Stili personalizzati per il subtheme Barrio basati sul sito originale.
 */

/* 1. Variabili Globali (Colori e Font) */
:root {
  /* Palette Colori estratta dal file WordPress */
  --wp--preset--color--black: #000;
  --wp--preset--color--white: #fff;
  --wp--preset--color--cyan-bluish-gray: #abb8c3;
  --wp--preset--color--vivid-red: #f9a232;

  /* Ombre (Shadows) */
  --wp--preset--shadow--natural: 0px 0px 20px rgba(0, 0, 0, 0.2);

  /* Altezza header (position: absolute in overlay sul primo paragrafo) */
  --header-height: 140px;
  --header-height-mobile: 80px;

  /* Dimensioni Font */
  --wp--preset--font-size--small: 13px;
  --wp--preset--font-size--medium: 20px;
  --wp--preset--font-size--large: 36px;
  --wp--preset--font-size--x-large: 42px;
}

#navbar-main {
  --bs-nav-link-color: #4B568F;
  --bs-nav-link-hover-color: #F9A232;
}

#navbar-main .nav-link.active,
#navbar-main .nav-link.is-active {
  color: #F9A232 !important;
  font-weight: 700;
}

/* Rimuovi shadow-natural dalla navbar su tutte le pagine tranne homepage */
body:not(.path-frontpage) .navbar-collapse.shadow-natural {
  box-shadow: none !important;
}

/* 2. Tipografia Generale */
body {
  font-family: "Josefin Sans", Sans-serif;
  color: var(--wp--preset--color--black);
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Yeseva One', serif; /* Font per i titoli rilevato nel file */
  font-weight: 400;
}

/* 3. Header e Logo */
/* Il logo originale ha dimensioni 295x104px */
.site-logo img {
  width: 295px;
  height: auto;
}

/* Navigazione Barrio (allineamento a destra come in WordPress) */
header .navbar-nav {
  margin-left: auto; /* Corrisponde a hfe-nav-menu__align-right */
}

header .navbar {
  margin-top: 30px;
}

.nav-link {
  font-family: 'Josefin Sans', sans-serif;
  text-transform: uppercase;
  padding: 15px !important; /* Spaziatura interna rilevata */
}

@media (max-width: 1400px) {
  .nav-item {
    font-size: 15px;
  }
}

@media (max-width: 991px) {
  .navbar-collapse {
    margin-left: 0;
    border-radius: 30px;
    padding: 30px;
  }
}

/* 4. Pulsanti (Replicazione dello stile Elementor) */
.btn-primary,
.wp-element-button {
  background-color: #32373c !important; /* Colore pulsante di default */
  color: var(--wp--preset--color--white) !important;
  border: none;
  padding: 0.667em 1.333em; /* Padding calcolato dai bottoni originali */
  text-decoration: none;
  display: inline-block;
  transition: all 0.3s ease;
}

.btn-primary:hover {
  background-color: var(--wp--preset--color--vivid-red) !important;
  transform: scale(1.05); /* Effetto 'grow' presente in alcune animazioni */
}

/* 5. Utility Classes (per replicare le classi WordPress has-...) */
.has-vivid-red-color {
  color: var(--wp--preset--color--vivid-red) !important;
}

.has-white-background-color {
  background-color: var(--wp--preset--color--white) !important;
}

.shadow-natural {
  box-shadow: var(--wp--preset--shadow--natural);
}

/* 6. Correzioni Layout Drupal/Barrio */
.region-content {
  padding-top: 24px; /* block-gap standard rilevato */
}

.hero-home {
    max-width: 1780px !important;
    margin: 0 auto !important;
}

/* Primo paragraph in field_content: compensa l'header in position absolute */
.field--name-field-content
  > .field__item:first-child
  > .paragraph:not(.paragraph--type--hero-homepage) {
  margin-top: var(--header-height);
}

@media (max-width: 991px) {
  .field--name-field-content
    > .field__item:first-child
    > .paragraph:not(.paragraph--type--hero-homepage) {
    margin-top: var(--header-height-mobile);
  }
}

/* Gestione dei contenitori simili a Elementor (e-con) */
.container-boxed {
  max-width: 1140px; /* Larghezza standard dei box */
  margin-right: auto;
  margin-left: auto;
}

/* Dimensioni precise del logo dal vecchio sito */
#navbar-main .navbar-brand img {
  width: 270px;
  height: auto;
  max-height: 104px;
}

/* Rimuovi il testo del sito se vuoi solo il logo come nell'originale */
#navbar-main .navbar-brand {
  font-size: 0;
  z-index: 1;
}

/* Stile link menu (Josefin Sans dal vecchio sito) */
#navbar-main .nav-link {
  color: #4b568f;
  font-family: "Barlow Condensed", Sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.4px;
  word-spacing: 0px;
}

#navbar-main .nav-link:hover {
  color: var(--wp--preset--color--vivid-red);
}

#CollapsingNavbar {
  margin-left: -28px;
    border-top-right-radius: 30px;
    border-bottom-right-radius: 30px;
    padding-left: 30px;
    background-color: white;
    padding: 8px;
}

main {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

header {
  position: absolute;
  z-index: 100;
  width: 100%;
}

header .navbar {
  background-color: transparent !important;
}

.header-actions .social-btn {
  background: #4b568f;
  color: white;
}

.header-actions .social-btn:hover {
  background: #f9a232;
  color: white;
}

.path-frontpage #CollapsingNavbar .header-actions .login-btn {
  margin-right: 10px;
  font-family: "Roboto", Sans-serif;
  font-size: 17px;
  font-weight: 700;
  border-radius: 23px;
  padding: 8px 32px;
}

@media (max-width: 1440px) {
  .header-actions .login-btn .btn-text {
    display: none;
  }

  .header-actions .login-btn {
    padding: 8px 12px !important;
    border-radius: 8px !important;
    font-size: 16px !important;
  }
}

.header-actions .login-btn {
  background: #f9a232;
  color: white;
}

.header-actions .login-btn:hover {
  background: #4b568f;
  color: white;
}

.node--type-page .node__content {
  margin-top: 0 !important;
}


@media (min-width: 1400px) {
  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    max-width: 1400px;
  }
}

.cta-wrapper a {
  border: 1px solid;
  border-radius: 25px 25px 25px 25px;
  padding: 18px 30px 18px 30px;
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  color: white;
  font-weight: bold;
  font-size: 15px;
  background-color: #4b568f;
  transition: all 0.3s ease;
}

.cta-wrapper a:hover {
  background-color: #f9a232;
  color: white;
  transform: scale(1.05);
}

/* HERO Section */
.hero-text-container {
  /* Usiamo un font sans-serif pulito */
  font-family: "Josefin Sans", Sans-serif;
  color: #4a5a84; /* Il blu desaturato del mockup */
  max-width: 800px;
  margin-bottom: 30px;
}

.hero-text-container .eyebrow {
  display: block;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 21px; /* Aumentato per matchare il mockup */
  font-weight: 400;
}

.hero-text-container .main-heading {
  margin: 0 0 40px 0;
  font-size: 32px;
  font-weight: 800;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 5px;
}

.hero-text-container .main-heading .accent {
  color: #f2a93e; /* L'arancio dorato corretto */
  font-weight: 600;
}

.hero-text-container .description-text {
  font-size: 20px;
  line-height: 1.4;
  font-weight: 400;
  color: #5d6b8f;
}

@media (min-width: 992px) {
  .hero-text-container .main-heading {
    white-space: nowrap;
  }
}

/* Mobile responsive */
@media (max-width: 768px) {
  .main-heading {
    font-size: 40px;
    flex-direction: column;
    gap: 0;
  }
  .eyebrow { font-size: 18px; }
  .description-text { font-size: 18px; }
}

/* partner-section */
.partner-section {
  padding: 80px 0;
  background-color: #E6E6E6; /* Sfondo leggermente azzurrato come nel mockup */
  text-align: center;
  font-family: "Josefin Sans", Sans-serif;
}

/* Titoli */
.partner-main-title {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 20px;+
}

.partner-main-title .orange-text { color: #f2a93e; }
.partner-main-title .blue-text { color: #43517a; }

.partner-subtitle {
  color: #5d6b8f;
  font-size: 18px;
  line-height: 1.5;
  margin-bottom: 50px;
}

/* Griglia Partner */
.partner-grid {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  max-width: 1000px;
  margin: 0 auto 50px auto;
  gap: 40px;
}

.partner-item {
  flex: 1;
  padding: 0 20px;
}

.partner-logo {
  max-height: 60px;
  margin-bottom: 25px;
  object-fit: contain;
}

.partner-description {
  color: #5d6b8f;
  font-size: 16px;
  line-height: 1.6;
}

/* Divisore Verticale */
.vertical-divider {
  width: 1px;
  background-color: #43517a;
  height: 180px;
  align-self: center;
}

/* Bottone */
.partner-cta .btn-blue {
  background-color: #515e8d;
  color: #ffffff;
  padding: 15px 35px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 1px;
  transition: background 0.3s ease;
  display: inline-block;
}

.partner-cta .btn-blue:hover {
  background-color: #3d4970;
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .partner-grid {
    flex-direction: column;
    align-items: center;
  }
  .vertical-divider {
    display: none; /* Nascondiamo la linea su mobile */
  }
  .partner-item {
    margin-bottom: 40px;
  }
}

/* service section */

.services-cta-section {
  padding: 100px 0;
  background-color: #E6E6E6;
  font-family: "Josefin Sans", Sans-serif;
}

.cta-flex-wrapper {
  display: flex;
  align-items: center;
  gap: 60px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Immagine con forma organica */
.cta-image-container {
  position: relative;
  flex: 1;
  display: flex;
  justify-content: center;
}

.blob-mask {
  width: 450px;
  height: 450px;
  overflow: hidden;
  /* Forma organica simulata */
  border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
  position: relative;
  z-index: 3;
}

.blob-mask img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Bordi colorati dietro l'immagine */
.blob-border-orange, .blob-border-blue {
  position: absolute;
  width: 460px;
  height: 460px;
  top: -5px;
  left: -5px;
  border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
  z-index: 1;
}

.blob-border-orange {
  border: 4px solid #f2a93e;
  transform: rotate(5deg);
}

.blob-border-blue {
  border: 4px solid #43517a;
  transform: rotate(-3deg);
  z-index: 2;
}

/* Contenuto Destra */
.cta-content {
  flex: 1;
}

.cta-logos {
  display: flex;
  gap: 30px;
  margin-bottom: 30px;
  align-items: center;
}

.logo-main { max-height: 60px; }
.logo-sub { max-height: 80px; }

.cta-title {
  font-size: 38px;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 25px;
}

.cta-title .orange-text { color: #f2a93e; }
.cta-title .blue-text { color: #43517a; }

.cta-description {
  color: #5d6b8f;
  font-size: 17px;
  line-height: 1.6;
  margin-bottom: 35px;
}

/* Bottone Arancione */
.btn-orange {
  background-color: #f2a93e;
  color: #ffffff;
  padding: 15px 35px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  font-size: 14px;
  display: inline-block;
  transition: transform 0.2s, background 0.3s;
  box-shadow: 0 4px 15px rgba(242, 169, 62, 0.3);
}

.btn-orange:hover {
  background-color: #e0962d;
  transform: translateY(-2px);
}

/* Mobile */
@media (max-width: 1024px) {
  .cta-flex-wrapper {
    flex-direction: column;
    text-align: center;
  }
  .cta-logos {
    justify-content: center;
  }
  .blob-mask, .blob-border-orange, .blob-border-blue {
    width: 300px;
    height: 300px;
  }
}

/* servizi digitali */
.digital-services {
  padding: 80px 0;
  background-color: #ffffff;
  font-family: "Josefin Sans", Sans-serif;
  position: relative;
}

/* Header della sezione */
.services-header {
  max-width: 500px;
  margin-bottom: 50px;
}

.services-header .eyebrow {
  display: block;
  font-size: 14px;
  letter-spacing: 1px;
  color: #5d6b8f;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.services-title {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 20px;
}

.services-title .orange-text { color: #f2a93e; }
.services-title .blue-text { color: #43517a; }

.services-intro {
  color: #5d6b8f;
  font-size: 16px;
  line-height: 1.5;
}

/* Griglia */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 colonne su desktop */
  gap: 30px;
}

/* Card singola */
.service-card {
  background: #ffffff;
  padding: 40px 30px;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  transition: transform 0.3s ease;

  /* Ombreggiatura morbida del mockup */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  border-radius: 20px 20px 0 20px;
}

.service-card:hover {
  transform: translateY(-5px);
}

.icon-wrapper {
  margin-bottom: 25px;
}

.icon-wrapper img {
  height: 50px; /* Dimensione icone arancioni */
  width: auto;
  object-fit: contain;
}

.service-text {
  color: #43517a;
  font-size: 16px;
  line-height: 1.4;
  margin: 0;
}

.service-text strong {
  font-weight: 700;
}

/* Responsive */
@media (max-width: 992px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
  .services-header {
    text-align: center;
    margin: 0 auto 40px auto;
  }
}

/* testimonianze section */
.testimonials-section {
  background-color: #fff;
  overflow: hidden;
  position: relative;
  background-image: url('/sites/default/files/2026-05/bg-diconodinoi.png');
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: 100% auto;   /* l'onda copre tutta la larghezza, altezza proporzionale */
  padding: 80px 0;    
}

.testimonials-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.testimonials-left {
  flex: 1;
  max-width: 600px;
  z-index: 2;
}

.testimonials-right {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}

.faces-composite {
  max-width: 100%; /* Può uscire leggermente dal container come nel mockup */
  height: auto;
  pointer-events: none; /* L'immagine è solo decorativa */
}

/* Stile specifica per l'autore nella slide */
.testimonial-item {
  display: flex;
  gap: 30px;
  align-items: center;
}

.author-img-main img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 4px solid #f2a93e;
  padding: 4px;
  outline: 4px solid #43517a;
  object-fit: cover;
}

/* Navigazione Swiper */
.nav-wrapper {
  display: flex;
  gap: 15px;
  margin-top: 30px;
  padding-left: 150px; /* Allineamento sotto il testo dopo l'immagine autore */
}

/* Responsive */
@media (max-width: 1024px) {
  .testimonials-flex {
    flex-direction: column;
    text-align: center;
  }
  .testimonials-right {
    order: -1; /* Mette l'immagine sopra il testo su mobile */
    justify-content: center;
  }
  .faces-composite {
    max-width: 80%;
  }
  .testimonial-item {
    flex-direction: column;
  }
  .nav-wrapper {
    justify-content: center;
    padding-left: 0;
  }
}


/* partners */
/* Container principale */
.partners-grid-section {
  background-color: #ffffff;
}

/* Flexbox per allineare i paragraph figli */
.partners-logo-flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 30px 60px; /* Spazio verticale e orizzontale tra i loghi */
}

/* Stile del singolo item (Paragraph Figlio) */
.partner-logo-item {
  flex: 0 1 auto;
  max-width: 160px; /* Limita la larghezza per uniformità */
  transition: all 0.3s ease;
}

/* Immagine interna */
.partner-logo-item img {
  width: 100%;
  height: auto;
  display: block;
  /* Effetto scala di grigi come richiesto */
  filter: grayscale(100%);
  opacity: 0.7;
  transition: filter 0.3s ease, opacity 0.3s ease;
}

/* Hover: il logo torna al colore originale */
.partner-logo-item:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

/* Ottimizzazione per Mobile */
@media (max-width: 768px) {
  .partners-logo-flex {
    gap: 30px;
  }
  .partner-logo-item {
    max-width: 100px;
  }
}

/* Container principale */
.partners-grid-section {
  padding: 60px 0;
  background-color: #ffffff;
  width: 100%;
}

/* Colpiamo il wrapper automatico che Drupal crea per il campo field_partners_items */
.partners-grid-section .field--name-field-partners-items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; /* Centra i loghi */
  align-items: center;
  gap: 40px 60px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Rimuoviamo eventuali margini dai div intermedi di Drupal */
.partners-grid-section .field__item {
  display: contents; /* Questo comando "annulla" il div intermedio per la flexbox */
}

/* Stile del singolo logo (il tuo paragraph figlio) */
.partner-logo-item {
  flex: 0 1 auto;
}

.partner-logo-item img {
  max-width: 180px; /* Dimensione massima per logo */
  height: auto;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: all 0.3s ease;
}

.partner-logo-item:hover img {
  filter: grayscale(0%);
  opacity: 1;
}
/* Container della griglia */
.partners-logo-flex {
  display: flex;
  flex-direction: row; /* Forza l'allineamento orizzontale */
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 40px;
  width: 100%;
}

/* Neutralizza i wrapper automatici di Drupal che vedi nell'ispeziona elemento */
.partners-logo-flex .field__item,
.partners-logo-flex .field__items {
  display: contents;
}

/* Stile del singolo logo */
.partner-logo-item {
  display: inline-block;
  max-width: 180px;
}

.partner-logo-item img {
  width: 100%;
  height: auto;
  filter: grayscale(100%);
  opacity: 0.6;
}

/* Text services section */

.tax-services-section {
  padding: 0 0 80px 0;
  background-color: #ffffff;
  position: relative;
  overflow: hidden;
  font-family: "Josefin Sans", Sans-serif;
}

/* Header */
.tax-header {
  max-width: 500px;
  margin-bottom: 60px;
  position: relative;
  z-index: 2;
}

.tax-header .eyebrow {
  color: #5d6b8f;
  font-size: 14px;
  letter-spacing: 1px;
  font-weight: bold;
}

.tax-title {
  font-size: 36px;
  font-weight: 700;
  color: #f2a93e; /* Arancione */
  margin: 10px 0;
}

.tax-title .blue-highlight {
  background-color: #cbd4e1; /* Il quadratino azzurro dietro "Bisogno" */
  color: #43517a;
  padding: 0 5px;
}

.tax-description {
  color: #5d6b8f;
  line-height: 1.6;
}

/* Griglia Card */
.tax-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  position: relative;
  z-index: 2;
  margin-bottom: 50px;
}

.tax-card {
  background: #ffffff;
  display: flex;
  align-items: center;
  padding: 25px;
  border-radius: 50px; /* Molto arrotondati come da mockup */
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tax-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
}

.tax-card .icon {
  font-size: 24px;
  margin-right: 15px;
  color: #43517a;
}

.tax-card .text {
  color: #43517a;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.5px;
}

/* Bottone Arancione */
.tax-footer-cta {
  text-align: center;
  position: relative;
  z-index: 2;
}

.btn-orange-full {
  background-color: #f2a93e;
  color: #ffffff;
  padding: 18px 40px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  font-size: 13px;
  display: inline-block;
}

/* Onda di Sfondo */
.bg-wave-decorative {
  position: absolute;
  top: 30%;
  left: 0;
  width: 100%;
  height: 400px;
  background-image: url('/sites/default/files/2026-03/bg-servizi.jpg');
  background-repeat: round;
  background-size: cover;
  z-index: 1;
  pointer-events: none;
}

/* Mobile */
@media (max-width: 992px) {
  .tax-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .tax-grid { grid-template-columns: 1fr; }
  .tax-header { text-align: center; margin: 0 auto 40px auto; }
}

/* footer */

.site-footer {
  background-color: #4B568F !important;
  color: #ffffff;
  padding: 60px 0 40px 0;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.site-footer a {
  color: #ffffff;
  text-decoration: none;
  transition: opacity 0.3s;
}

.site-footer a:hover {
  opacity: 0.8;
}

/* Colonna Logo */
.footer-logo {
  max-width: 200px;
  margin-bottom: 20px;
}
.footer-legal { font-weight: bold; font-size: 14px; margin-bottom: 5px; }
.footer-piva { font-size: 12px; opacity: 0.7; text-transform: uppercase; }

/* Social e Assistenza */
.footer-social {margin-bottom: 30px;}
.footer-social a { display: block; margin-bottom: 10px; font-size: 14px; }
.assistenza-box {
  border: 2px solid #fff;
  border-radius: 50px;
  padding: 10px 20px;
  display: inline-block;
  margin-top: 15px;
}
.assistenza-box .label { display: block; font-size: 10px; text-align: center; }
.assistenza-box .number { font-size: 20px; font-weight: bold; }

.assistenza-img { width: 115px;}

.footer-main .number {
        position: relative;
    left: -100px;
    top: 4px;
}

/* Menu */
.footer-menu { list-style: square; padding: 0; color: #f9a232; }
.footer-menu li { font-weight: bold; font-size: 14px; }
.footer-menu li a:hover { color: #f9a232;}

/* Quick Actions */
.quick-actions { list-style: none; padding: 0;  }
.quick-actions li { margin-bottom: 20px; display: flex; align-items: flex-start; gap: 10px; }
.quick-actions li a {color: #f9a232;}
.quick-actions i { color: #f2a93e; font-size: 1.2rem; }

/* Box Inferiore Scuro */
.footer-bottom-box {
  background-color: #3b4868; /* Blu più scuro */
  border-radius: 20px;
  padding: 30px;
  margin-top: 50px;
}

.footer-info-item {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 13px;
  line-height: 1.4;
}

.footer-info-item i {
  font-size: 24px;
  opacity: 0.8;
}

.footer-info-item strong {
  color: #f2a93e; /* Numeri di telefono in evidenza */
}

.page-node-8 .hero-home, .page-node-9 .hero-home {
    height: 100vh;
    display: flex;
    background-size: inherit;
    background-position: inherit;
    align-items: center;
    color: #fff;
    background-repeat: no-repeat;
}

/* ============================================
   NAMIRIAL CARDS - RESPONSIVE
   ============================================ */
 
@media (max-width: 768px) {
 
  /* Card bianche (SPID, Firme, PEC, ecc.) */
  .namirial-card-section {
    padding: 1rem 0;
  }
 
  .namirial-card {
    width: 100% !important;
    min-height: unset !important;
    border-radius: 0 !important;
    padding: 1.8rem 1.2rem;
    box-sizing: border-box;
  }
 
  .namirial-card--left,
  .namirial-card--right {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
 
  .namirial-card__title {
    font-size: 0.95rem;
  }
 
  .namirial-card__list li,
  .namirial-card__list--numbered li {
    font-size: 0.85rem;
  }
 
  .namirial-card__prose {
    font-size: 0.85rem;
  }
 
  /* CTA section con immagine blob */
  .services-cta-section .cta-flex-wrapper {
    flex-direction: column;
  }
 
  .services-cta-section .cta-image-container {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden;
  }
 
  .services-cta-section .cta-image-container img {
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
    display: block;
  }
 
  .services-cta-section .cta-content {
    width: 100% !important;
    padding: 1.5rem 1rem;
    box-sizing: border-box;
  }
 
  /* Lista servizi verticale */
  .namirial-services-list-section {
    padding: 1.5rem 1rem;
  }
 
  .namirial-service-row {
    padding: 1rem 0;
  }
 
  .namirial-service-label__line1,
  .namirial-service-label__line2 {
    font-size: 0.85rem;
  }
 
}

/* ============================================
   NAMIRIAL LINKS - FORZA COLORE ARANCIONE
   ============================================ */
 
.namirial-card a,
.namirial-card a:link,
.namirial-card a:visited,
.namirial-card a:hover,
.namirial-card a:active,
.namirial-card .namirial-link,
.namirial-card__list li a,
.namirial-card__list--numbered li a,
.namirial-card__prose a,
.namirial-card__footer a,
.namirial-services-list-section a {
  color: #f5a623 !important;
  text-decoration: none !important;
}
 
.namirial-card a:hover,
.namirial-services-list-section a:hover {
  text-decoration: underline !important;
}


/* ============================================
   CONTRIBUENTI PAGE (node-9)
   Tipografia e stili dal PSD
   Font rilevati dal binario PSD:
   - YesevaOne-Regular  → titoli principali
   - JosefinSans (vari pesi) → body, label, UI
   ============================================ */

/* --- HERO --- */



/* --- RESPONSIVE --- */

@media (max-width: 768px) {
  .page-node-9 .hero-text-container .eyebrow        { font-size: 13px !important; }
  .page-node-9 .hero-text-container .main-heading   { font-size: 22px !important; }
  .page-node-9 .hero-text-container .description-text { font-size: 16px !important; }
  .page-node-9 .caf-info-title                      { font-size: 24px !important; }
  .page-node-9 .caf-info-text                       { font-size: 16px !important; }
  .page-node-9 .caf-info-cta-text                   { font-size: 15px !important; }
  .page-node-9 .modello730-title                    { font-size: 28px !important; }
  .page-node-9 .modello730-card__text               { font-size: 16px !important; }
  .page-node-9 .preparare-title                     { font-size: 24px !important; }
  .page-node-9 .preparare-intro                     { font-size: 16px !important; }
  .page-node-9 .accordion__label                    { font-size: 15px !important; }
  .page-node-9 .accordion__list li                  { font-size: 15px !important; }
  .page-node-9 .accordion__note                     { font-size: 15px !important; }
}

@media (max-width: 1024px) {
  header .navbar {
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  header .navbar-toggler {
    margin-top: -20px;
  }
}

@media (max-width: 1440px) and (min-width: 992px) {
  header .navbar {
    align-items: flex-start;
  }
  
  #navbar-main .nav-link {
    padding: 10px 8px !important;
    font-size: 13px;
  }
}

@media (max-width: 1440px) and (min-width: 992px) {
  #CollapsingNavbar .header-actions {
    margin-left: auto;
  }
}

#block-caf-socialandloginlinks {
    margin-left: auto;
}

@media (max-width: 1280px) and (min-width: 992px) {
  header .navbar {
    align-items: flex-start;
  }

  #navbar-main .navbar-brand img {
    width: 180px;
  }
  
    .path-frontpage #navbar-main .navbar-brand {
    margin-bottom: 0;
  }


  #navbar-main .nav-link {
    padding: 10px 6px !important;
    font-size: 12px;
  }

  .header-actions .social-btn {
    width: 32px;
    height: 32px;
    font-size: 13px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .header-actions .login-btn {
    padding: 6px 10px;
    font-size: 13px;
  }
}

/* Border-right arancione sui primi due footer-info-item (desktop) */
@media (min-width: 768px) {
  .footer-bottom-box .footer-info-item:not(:last-child) {
    border-right: 1px solid #f9a232;
  }
}

/* === FONT IMPORT === */
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;700&family=Yeseva+One&display=swap');

/* === EYEBROW === */
.testimonials-section .eyebrow {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 21px;
  font-weight: 400;
  color: #4b568f;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 12px;
}

/* === TITOLO H2 === */
.testimonials-section .testimonials-title {
  font-family: 'Yeseva One', serif;
  font-size: 30px;
  font-weight: 400;
  color: #4b568f;
  line-height: 1.25;
  margin: 0 0 32px;
}

.testimonials-section .testimonials-title .quote {
  /* virgolette decorative */
  font-family: 'Yeseva One', serif;
  color: #4b568f;
}

.testimonials-section .testimonials-title .orange-text {
  color: #f39200; /* arancione brand — adatta se il tono esatto è diverso */
}

/* === TITOLO TESTIMONIANZA === */
.testimonials-section .testimonial-text h3 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: #4b4b4b;
  text-transform: uppercase;
  margin: 0 0 16px;
  letter-spacing: 0.02em;
}

/* === CORPO TESTIMONIANZA === */
.testimonials-section .testimonial-text p {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 19px;
  font-weight: 400;
  color: #7a7a7a;
  line-height: 1.55;
  margin: 0 0 20px;
}

/* === AUTORE === */
.testimonials-section .author-info strong {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: #4b4b4b;
}

.testimonials-section .author-info span {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #7a7a7a;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* === NAVIGAZIONE FRECCE === */
.testimonials-section .nav-wrapper {
  display: flex;
  gap: 14px;
  margin-top: 24px;
}

.testimonials-section .swiper-button-prev-custom,
.testimonials-section .swiper-button-next-custom {
  width: 44px;
  height: 44px;
  border: 2px solid #f39200;
  border-radius: 50%;
  background: #fff;
  color: #f39200;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
  user-select: none;
}

.testimonials-section .swiper-button-prev-custom:hover,
.testimonials-section .swiper-button-next-custom:hover {
  background: #f39200;
  color: #fff;
}

/* Lo Swiper deve essere strettamente largo quanto il suo contenitore */
.testimonials-section .testimonialSwiper {
  overflow: hidden;
  /* NIENTE padding negativo, NIENTE margin negativo */
  padding: 0;
  margin: 0;
  width: 100%;
}

/* Ogni slide è larga 100% e non sborda */
.testimonials-section .swiper-slide {
  width: 100%;
  box-sizing: border-box;
  height: auto;
}

/* Layout interno della slide */
.testimonials-section .testimonial-item {
  display: flex;
  align-items: flex-start;
  gap: 32px;
}

.testimonials-section .author-img-main {
  flex: 0 0 auto;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  overflow: hidden;
}

.testimonials-section .author-img-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}

.testimonials-section .testimonial-text {
  flex: 1 1 auto;
  min-width: 0;
}

 @media (max-width: 1024px) {
    .testimonials-left {
      width: 100%;
      max-width: 100%;
      min-width: 0;
    }
  }
  .testimonials-section .testimonialSwiper {
    max-width: 100%;
    min-width: 0;
  }

 @media (max-width: 1024px) {
    .testimonials-section .testimonialSwiper .testimonial-item {
      flex-direction: column;
      align-items: center;
      text-align: center;
    }
  }
  @media (max-width: 991px) {
    #CollapsingNavbar {
      margin-left: 0; 
      padding: 20px;
      border-radius: 20px;
    } 
  } 
  
   @media (max-width: 767.98px) {
    .site-footer { padding: 48px 0 32px; }

    /* respiro orizzontale dal bordo schermo */
    .site-footer .container { padding-left: 24px; padding-right: 24px; }
  
    /* separazione verticale tra i 4 blocchi impilati */
    .site-footer .footer-col { margin-bottom: 32px; }
    .site-footer .footer-col:last-child { margin-bottom: 0; }

    /* menu: bullet quadrati non tagliati + voci spaziate */
    .site-footer .footer-menu { padding-left: 1.2em; margin-top: 8px; }
    .site-footer .footer-menu li { margin-bottom: 8px; }

    /* quick actions spaziate */
    .site-footer .quick-actions li { margin-bottom: 18px; }

    /* box scuro: testo a sinistra e voci spaziate */
    .site-footer .footer-bottom-box { margin-top: 16px; padding: 24px; }
    .site-footer .footer-bottom-box .footer-info-item { text-align: left; margin-bottom: 20px; }
    .site-footer .footer-bottom-box .footer-info-item:last-child { margin-bottom: 0; }
  }

 /* Pagine utente (login, registrazione, reimposta password): l'header è position:absolute,
     quindi va dato spazio in alto per non finirci sotto, e la form va incolonnata con margini */
  body.path-user main {
    padding-top: 175px;
    padding-bottom: 60px;
  }
  body.path-user #block-caf-content {
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
  @media (max-width: 991px) {
    body.path-user main { padding-top: 120px; }
  }

/* === LOCAL TASK (Visualizza/Modifica/Elimina/Revisioni) === */
  /* Desktop/tablet: barra verticale fissa a sinistra */
  body.user-logged-in nav.tabs {
    position: fixed;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: auto;
    margin: 0; padding: 0;
    z-index: 96;
    background: transparent;
  }
  body.user-logged-in nav.tabs .nav.primary,
  body.user-logged-in nav.tabs ul.nav-tabs {
    flex-direction: column; flex-wrap: nowrap;
    border: 0; margin: 0; padding: 0; gap: 4px; background: transparent;
  }
  body.user-logged-in nav.tabs .nav-item { width: 100%; margin: 0; }
  body.user-logged-in nav.tabs .nav-link {
    display: block; background: #4b568f; color: #fff; border: 0;
    border-radius: 0 8px 8px 0; padding: 10px 16px;
    font-size: 13px; font-weight: 700; white-space: nowrap; line-height: 1.1;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
    transition: background .2s, padding .2s;
  }
  body.user-logged-in nav.tabs .nav-link:hover,
  body.user-logged-in nav.tabs .nav-link.active {
    background: #f9a232; color: #fff; padding-left: 22px;
  }

  /* Mobile: barra orizzontale fissa in basso (action bar) */
  @media (max-width: 767.98px) {
    body.user-logged-in nav.tabs {
      top: auto; bottom: 0; left: 0; right: 0; transform: none; width: 100%;
    }
    body.user-logged-in nav.tabs .nav.primary,
    body.user-logged-in nav.tabs ul.nav-tabs {
      flex-direction: row; justify-content: stretch; gap: 0;
      background: #4b568f; box-shadow: 0 -2px 10px rgba(0,0,0,.25);
    }
    body.user-logged-in nav.tabs .nav-item { flex: 1 1 0; width: auto; }
    body.user-logged-in nav.tabs .nav-link {
      border-radius: 0; text-align: center; padding: 11px 4px; font-size: 11px;
      box-shadow: none; border-right: 1px solid rgba(255,255,255,.15);
    }
    body.user-logged-in nav.tabs .nav-item:last-child .nav-link { border-right: 0; }
    body.user-logged-in nav.tabs .nav-link:hover,
    body.user-logged-in nav.tabs .nav-link.active { padding-left: 4px; }
  }
  
  
  
  
  /* =========================================================
     FIX COERENZA FONT - 2026-05-28
     Allinea le dimensioni dei testi sulle pagine servizi CAF
     e su /per-il-professionista al resto del sito (base 16px).
     Necessari !important per battere gli <style> inline nei
     paragraph raw_html dei nodi.
     ========================================================= */

  /* 1) PAGINA /per-il-professionista
        Era: H2 25.6px, P 15.2px, label 12px, tool-name 11.2px */
  .pip-section .pip-col-text h2,
  .pip-hero-text h2 {
    font-size: 2rem !important;        /* 32px - come gli altri H2 */
    line-height: 1.25 !important;
    font-weight: 700 !important;
  }
  .pip-section .pip-col-text p,
  .pip-section .pip-col-text li,
  .pip-section .pip-tool-item p,
  .pip-hero-text p {
    font-size: 1.0625rem !important;   /* 17px - coerente con il body */
    line-height: 1.7 !important;
  }
  .pip-section .pip-col-text .pip-label,
  .pip-hero-text .pip-label {
    font-size: 0.875rem !important;    /* 14px invece di 12px */
    letter-spacing: 2px !important;
  }
  .pip-section .pip-tool-item .tool-name {
    font-size: 1rem !important;        /* 16px invece di 11.2px */
    letter-spacing: 1px !important;
  }

  /* 2) NODI SERVIZIO CAF (730, IMU, successione, colf, ADI,
        delega-digitale, contratto-di-locazione)
        Tutti i corpi testo descrittivi a 16-17px */
  .caf-info-text,
  .caf-info-cta-text,
  .modello730-card__text, .modello730-card__subtitle,
  .imu-card__text, .imu-card__subtitle,
  .successione-card__text, .successione-card__subtitle,
  .colf-card__text, .colf-card__subtitle,
  .adi-card__text, .adi-card__subtitle,
  .delega-card__text, .delega-card__subtitle,
  .locazione-card__text, .locazione-card__subtitle,
  .locazione-text, .locazione-text p, .locazione-text li {
    font-size: 1.0625rem !important;   /* 17px */
    line-height: 1.7 !important;
  }

  /* Etichetta "COSA POSSIAMO FARE PER TE" - era 13.12px */
  .modello730-card__label,
  .imu-card__label,
  .successione-card__label,
  .colf-card__label,
  .adi-card__label,
  .delega-card__label,
  .locazione-card__label {
    font-size: 0.9375rem !important;   /* 15px - resta eyebrow ma più leggibile */
    letter-spacing: 1.5px !important;
  }

  /* 3) H2 "Ecco cosa preparare" - era 28.8px, gli altri H2 sono 32px */
  .preparare-title {
    font-size: 2rem !important;        /* 32px */
    line-height: 1.25 !important;
  }

  /* 4) ACCORDION "Ecco cosa preparare" su 730 e ADI
        La voce cliccabile era 15.2px/600, troppo piccola */
  .accordion__label {
    font-size: 1.0625rem !important;   /* 17px */
    font-weight: 700 !important;
    line-height: 1.45 !important;
  }
  .accordion__number {
    font-size: 1rem !important;        /* 16px */
    font-weight: 700 !important;
  }
  .accordion__list,
  .accordion__body,
  .accordion__body li,
  .accordion__body p {
    font-size: 1rem !important;        /* 16px */
    line-height: 1.65 !important;
  }

  /* 5) RESPONSIVE: su mobile riduci proporzionalmente
        così non sfora i contenitori delle card */
  @media (max-width: 768px) {
    .pip-section .pip-col-text h2,
    .pip-hero-text h2,
    .pip-section .pip-col-text h2,
    .pip-hero-text h2,
    .pip-section .pip-col-text p,
    .pip-section .pip-col-text li,
    .pip-section .pip-tool-item p,
    .pip-hero-text p,
    .caf-info-text,
    .caf-info-cta-text,
    [class$="-card__text"],
    [class$="-card__subtitle"],
    .locazione-text,
    .locazione-text p,
    .locazione-text li {
      font-size: 1rem !important;      /* 16px */
    }
    .preparare-title {
      font-size: 1.6rem !important;    /* ~26px */
    }
    .accordion__label { font-size: 1rem !important; }
  }

/* PATCH 2: liste puntate dentro le card servizi CAF
     (i <li> in .{slug}-list erano rimasti a 14.4px) */
/* a) Paragrafo introduttivo "Di seguito un elenco dettagliato..." 
        su /modello-7302026 e /assegno-di-inclusione: era 14.4px */
  .preparare-intro {
    font-size: 1.0625rem !important;   /* 17px */
    line-height: 1.7 !important;
  }
  
  /* b) Liste puntate <li> dentro le card servizi
        (i <li> in .{slug}-list erano rimasti a 14.4px) */
  .modello730-list, .modello730-list li,
  .locazione-list,  .locazione-list li,
  .imu-list,        .imu-list li,
  .successione-list,.successione-list li,
  .colf-list,       .colf-list li,
  .adi-list,        .adi-list li,
  .delega-list,     .delega-list li,
  .modello730-card ul, .modello730-card ol,
  .locazione-card ul,  .locazione-card ol,
  .imu-card ul,        .imu-card ol,
  .successione-card ul,.successione-card ol,
  .colf-card ul,       .colf-card ol,
  .adi-card ul,        .adi-card ol,
  .delega-card ul,     .delega-card ol {
    font-size: 1.0625rem !important;   /* 17px - coerente col body */
    line-height: 1.7 !important;
  }
  
  @media (max-width: 768px) {
    .preparare-intro,
    .modello730-list li, .locazione-list li, .imu-list li,
    .successione-list li, .colf-list li, .adi-list li,
    .delega-list li {
      font-size: 1rem !important;      /* 16px su mobile */
    }
  }
  --wp--preset--shadow--natural: 0px 0px 20px rgba(0, 0, 0, 0.2);

  /* Altezza header (position: absolute in overlay sul primo paragrafo) */
  --header-height: 140px;
  --header-height-mobile: 80px;

  /* Dimensioni Font */
  --wp--preset--font-size--small: 13px;
  --wp--preset--font-size--medium: 20px;
  --wp--preset--font-size--large: 36px;
  --wp--preset--font-size--x-large: 42px;
}

#navbar-main {
  --bs-nav-link-color: #4B568F;
  --bs-nav-link-hover-color: #F9A232;
}

#navbar-main .nav-link.active,
#navbar-main .nav-link.is-active {
  color: #F9A232 !important;
  font-weight: 700;
}

/* Rimuovi shadow-natural dalla navbar su tutte le pagine tranne homepage */
body:not(.path-frontpage) .navbar-collapse.shadow-natural {
  box-shadow: none !important;
}

/* 2. Tipografia Generale */
body {
  font-family: "Josefin Sans", Sans-serif;
  color: var(--wp--preset--color--black);
  line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
  font-family: 'Yeseva One', serif; /* Font per i titoli rilevato nel file */
  font-weight: 400;
}

/* 3. Header e Logo */
/* Il logo originale ha dimensioni 295x104px */
.site-logo img {
  width: 295px;
  height: auto;
}

/* Navigazione Barrio (allineamento a destra come in WordPress) */
header .navbar-nav {
  margin-left: auto; /* Corrisponde a hfe-nav-menu__align-right */
}

header .navbar {
  margin-top: 30px;
}

.nav-link {
  font-family: 'Josefin Sans', sans-serif;
  text-transform: uppercase;
  padding: 15px !important; /* Spaziatura interna rilevata */
}

@media (max-width: 1400px) {
  .nav-item {
    font-size: 15px;
  }
}

@media (max-width: 991px) {
  .navbar-collapse {
    margin-left: 0;
    border-radius: 30px;
    padding: 30px;
  }
}

/* 4. Pulsanti (Replicazione dello stile Elementor) */
.btn-primary,
.wp-element-button {
  background-color: #32373c !important; /* Colore pulsante di default */
  color: var(--wp--preset--color--white) !important;
  border: none;
  padding: 0.667em 1.333em; /* Padding calcolato dai bottoni originali */
  text-decoration: none;
  display: inline-block;
  transition: all 0.3s ease;
}

.btn-primary:hover {
  background-color: var(--wp--preset--color--vivid-red) !important;
  transform: scale(1.05); /* Effetto 'grow' presente in alcune animazioni */
}

/* 5. Utility Classes (per replicare le classi WordPress has-...) */
.has-vivid-red-color {
  color: var(--wp--preset--color--vivid-red) !important;
}

.has-white-background-color {
  background-color: var(--wp--preset--color--white) !important;
}

.shadow-natural {
  box-shadow: var(--wp--preset--shadow--natural);
}

/* 6. Correzioni Layout Drupal/Barrio */
.region-content {
  padding-top: 24px; /* block-gap standard rilevato */
}

.hero-home {
    max-width: 1780px !important;
    margin: 0 auto !important;
}

/* Primo paragraph in field_content: compensa l'header in position absolute */
.field--name-field-content
  > .field__item:first-child
  > .paragraph:not(.paragraph--type--hero-homepage) {
  margin-top: var(--header-height);
}

@media (max-width: 991px) {
  .field--name-field-content
    > .field__item:first-child
    > .paragraph:not(.paragraph--type--hero-homepage) {
    margin-top: var(--header-height-mobile);
  }
}

/* Gestione dei contenitori simili a Elementor (e-con) */
.container-boxed {
  max-width: 1140px; /* Larghezza standard dei box */
  margin-right: auto;
  margin-left: auto;
}

/* Dimensioni precise del logo dal vecchio sito */
#navbar-main .navbar-brand img {
  width: 270px;
  height: auto;
  max-height: 104px;
}

/* Rimuovi il testo del sito se vuoi solo il logo come nell'originale */
#navbar-main .navbar-brand {
  font-size: 0;
  z-index: 1;
}

/* Stile link menu (Josefin Sans dal vecchio sito) */
#navbar-main .nav-link {
  color: #4b568f;
  font-family: "Barlow Condensed", Sans-serif;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.4px;
  word-spacing: 0px;
}

#navbar-main .nav-link:hover {
  color: var(--wp--preset--color--vivid-red);
}

#CollapsingNavbar {
  margin-left: -28px;
    border-top-right-radius: 30px;
    border-bottom-right-radius: 30px;
    padding-left: 30px;
    background-color: white;
    padding: 8px;
}

main {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

header {
  position: absolute;
  z-index: 100;
  width: 100%;
}

header .navbar {
  background-color: transparent !important;
}

.header-actions .social-btn {
  background: #4b568f;
  color: white;
}

.header-actions .social-btn:hover {
  background: #f9a232;
  color: white;
}

.path-frontpage #CollapsingNavbar .header-actions .login-btn {
  margin-right: 10px;
  font-family: "Roboto", Sans-serif;
  font-size: 17px;
  font-weight: 700;
  border-radius: 23px;
  padding: 8px 32px;
}

@media (max-width: 1440px) {
  .header-actions .login-btn .btn-text {
    display: none;
  }

  .header-actions .login-btn {
    padding: 8px 12px !important;
    border-radius: 8px !important;
    font-size: 16px !important;
  }
}

.header-actions .login-btn {
  background: #f9a232;
  color: white;
}

.header-actions .login-btn:hover {
  background: #4b568f;
  color: white;
}

.node--type-page .node__content {
  margin-top: 0 !important;
}


@media (min-width: 1400px) {
  .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
    max-width: 1400px;
  }
}

.cta-wrapper a {
  border: 1px solid;
  border-radius: 25px 25px 25px 25px;
  padding: 18px 30px 18px 30px;
  display: inline-block;
  text-decoration: none;
  text-transform: uppercase;
  color: white;
  font-weight: bold;
  font-size: 15px;
  background-color: #4b568f;
  transition: all 0.3s ease;
}

.cta-wrapper a:hover {
  background-color: #f9a232;
  color: white;
  transform: scale(1.05);
}

/* HERO Section */
.hero-text-container {
  /* Usiamo un font sans-serif pulito */
  font-family: "Josefin Sans", Sans-serif;
  color: #4a5a84; /* Il blu desaturato del mockup */
  max-width: 800px;
  margin-bottom: 30px;
}

.hero-text-container .eyebrow {
  display: block;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 21px; /* Aumentato per matchare il mockup */
  font-weight: 400;
}

.hero-text-container .main-heading {
  margin: 0 0 40px 0;
  font-size: 32px;
  font-weight: 800;
  line-height: 1;
  display: flex;
  align-items: baseline;
  gap: 5px;
}

.hero-text-container .main-heading .accent {
  color: #f2a93e; /* L'arancio dorato corretto */
  font-weight: 600;
}

.hero-text-container .description-text {
  font-size: 20px;
  line-height: 1.4;
  font-weight: 400;
  color: #5d6b8f;
}

@media (min-width: 992px) {
  .hero-text-container .main-heading {
    white-space: nowrap;
  }
}

/* Mobile responsive */
@media (max-width: 768px) {
  .main-heading {
    font-size: 40px;
    flex-direction: column;
    gap: 0;
  }
  .eyebrow { font-size: 18px; }
  .description-text { font-size: 18px; }
}

/* partner-section */
.partner-section {
  padding: 80px 0;
  background-color: #E6E6E6; /* Sfondo leggermente azzurrato come nel mockup */
  text-align: center;
  font-family: "Josefin Sans", Sans-serif;
}

/* Titoli */
.partner-main-title {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 20px;+
}

.partner-main-title .orange-text { color: #f2a93e; }
.partner-main-title .blue-text { color: #43517a; }

.partner-subtitle {
  color: #5d6b8f;
  font-size: 18px;
  line-height: 1.5;
  margin-bottom: 50px;
}

/* Griglia Partner */
.partner-grid {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  max-width: 1000px;
  margin: 0 auto 50px auto;
  gap: 40px;
}

.partner-item {
  flex: 1;
  padding: 0 20px;
}

.partner-logo {
  max-height: 60px;
  margin-bottom: 25px;
  object-fit: contain;
}

.partner-description {
  color: #5d6b8f;
  font-size: 16px;
  line-height: 1.6;
}

/* Divisore Verticale */
.vertical-divider {
  width: 1px;
  background-color: #43517a;
  height: 180px;
  align-self: center;
}

/* Bottone */
.partner-cta .btn-blue {
  background-color: #515e8d;
  color: #ffffff;
  padding: 15px 35px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  font-size: 14px;
  letter-spacing: 1px;
  transition: background 0.3s ease;
  display: inline-block;
}

.partner-cta .btn-blue:hover {
  background-color: #3d4970;
}

/* Mobile Responsive */
@media (max-width: 768px) {
  .partner-grid {
    flex-direction: column;
    align-items: center;
  }
  .vertical-divider {
    display: none; /* Nascondiamo la linea su mobile */
  }
  .partner-item {
    margin-bottom: 40px;
  }
}

/* service section */

.services-cta-section {
  padding: 100px 0;
  background-color: #E6E6E6;
  font-family: "Josefin Sans", Sans-serif;
}

.cta-flex-wrapper {
  display: flex;
  align-items: center;
  gap: 60px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Immagine con forma organica */
.cta-image-container {
  position: relative;
  flex: 1;
  display: flex;
  justify-content: center;
}

.blob-mask {
  width: 450px;
  height: 450px;
  overflow: hidden;
  /* Forma organica simulata */
  border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
  position: relative;
  z-index: 3;
}

.blob-mask img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Bordi colorati dietro l'immagine */
.blob-border-orange, .blob-border-blue {
  position: absolute;
  width: 460px;
  height: 460px;
  top: -5px;
  left: -5px;
  border-radius: 42% 58% 70% 30% / 45% 45% 55% 55%;
  z-index: 1;
}

.blob-border-orange {
  border: 4px solid #f2a93e;
  transform: rotate(5deg);
}

.blob-border-blue {
  border: 4px solid #43517a;
  transform: rotate(-3deg);
  z-index: 2;
}

/* Contenuto Destra */
.cta-content {
  flex: 1;
}

.cta-logos {
  display: flex;
  gap: 30px;
  margin-bottom: 30px;
  align-items: center;
}

.logo-main { max-height: 60px; }
.logo-sub { max-height: 80px; }

.cta-title {
  font-size: 38px;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 25px;
}

.cta-title .orange-text { color: #f2a93e; }
.cta-title .blue-text { color: #43517a; }

.cta-description {
  color: #5d6b8f;
  font-size: 17px;
  line-height: 1.6;
  margin-bottom: 35px;
}

/* Bottone Arancione */
.btn-orange {
  background-color: #f2a93e;
  color: #ffffff;
  padding: 15px 35px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  font-size: 14px;
  display: inline-block;
  transition: transform 0.2s, background 0.3s;
  box-shadow: 0 4px 15px rgba(242, 169, 62, 0.3);
}

.btn-orange:hover {
  background-color: #e0962d;
  transform: translateY(-2px);
}

/* Mobile */
@media (max-width: 1024px) {
  .cta-flex-wrapper {
    flex-direction: column;
    text-align: center;
  }
  .cta-logos {
    justify-content: center;
  }
  .blob-mask, .blob-border-orange, .blob-border-blue {
    width: 300px;
    height: 300px;
  }
}

/* servizi digitali */
.digital-services {
  padding: 80px 0;
  background-color: #ffffff;
  font-family: "Josefin Sans", Sans-serif;
  position: relative;
}

/* Header della sezione */
.services-header {
  max-width: 500px;
  margin-bottom: 50px;
}

.services-header .eyebrow {
  display: block;
  font-size: 14px;
  letter-spacing: 1px;
  color: #5d6b8f;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.services-title {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 20px;
}

.services-title .orange-text { color: #f2a93e; }
.services-title .blue-text { color: #43517a; }

.services-intro {
  color: #5d6b8f;
  font-size: 16px;
  line-height: 1.5;
}

/* Griglia */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 colonne su desktop */
  gap: 30px;
}

/* Card singola */
.service-card {
  background: #ffffff;
  padding: 40px 30px;
  min-height: 200px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  transition: transform 0.3s ease;

  /* Ombreggiatura morbida del mockup */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  border-radius: 20px 20px 0 20px;
}

.service-card:hover {
  transform: translateY(-5px);
}

.icon-wrapper {
  margin-bottom: 25px;
}

.icon-wrapper img {
  height: 50px; /* Dimensione icone arancioni */
  width: auto;
  object-fit: contain;
}

.service-text {
  color: #43517a;
  font-size: 16px;
  line-height: 1.4;
  margin: 0;
}

.service-text strong {
  font-weight: 700;
}

/* Responsive */
@media (max-width: 992px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .services-grid {
    grid-template-columns: 1fr;
  }
  .services-header {
    text-align: center;
    margin: 0 auto 40px auto;
  }
}

/* testimonianze section */
.testimonials-section {
  background-color: #fff;
  overflow: hidden;
  position: relative;
  background-image: url('/sites/default/files/2026-05/bg-diconodinoi.png');
  background-repeat: no-repeat;
  background-position: bottom center;
  background-size: 100% auto;   /* l'onda copre tutta la larghezza, altezza proporzionale */
  padding: 80px 0;    
}

.testimonials-flex {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.testimonials-left {
  flex: 1;
  max-width: 600px;
  z-index: 2;
}

.testimonials-right {
  flex: 1;
  display: flex;
  justify-content: flex-end;
}

.faces-composite {
  max-width: 100%; /* Può uscire leggermente dal container come nel mockup */
  height: auto;
  pointer-events: none; /* L'immagine è solo decorativa */
}

/* Stile specifica per l'autore nella slide */
.testimonial-item {
  display: flex;
  gap: 30px;
  align-items: center;
}

.author-img-main img {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 4px solid #f2a93e;
  padding: 4px;
  outline: 4px solid #43517a;
  object-fit: cover;
}

/* Navigazione Swiper */
.nav-wrapper {
  display: flex;
  gap: 15px;
  margin-top: 30px;
  padding-left: 150px; /* Allineamento sotto il testo dopo l'immagine autore */
}

/* Responsive */
@media (max-width: 1024px) {
  .testimonials-flex {
    flex-direction: column;
    text-align: center;
  }
  .testimonials-right {
    order: -1; /* Mette l'immagine sopra il testo su mobile */
    justify-content: center;
  }
  .faces-composite {
    max-width: 80%;
  }
  .testimonial-item {
    flex-direction: column;
  }
  .nav-wrapper {
    justify-content: center;
    padding-left: 0;
  }
}


/* partners */
/* Container principale */
.partners-grid-section {
  background-color: #ffffff;
}

/* Flexbox per allineare i paragraph figli */
.partners-logo-flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 30px 60px; /* Spazio verticale e orizzontale tra i loghi */
}

/* Stile del singolo item (Paragraph Figlio) */
.partner-logo-item {
  flex: 0 1 auto;
  max-width: 160px; /* Limita la larghezza per uniformità */
  transition: all 0.3s ease;
}

/* Immagine interna */
.partner-logo-item img {
  width: 100%;
  height: auto;
  display: block;
  /* Effetto scala di grigi come richiesto */
  filter: grayscale(100%);
  opacity: 0.7;
  transition: filter 0.3s ease, opacity 0.3s ease;
}

/* Hover: il logo torna al colore originale */
.partner-logo-item:hover img {
  filter: grayscale(0%);
  opacity: 1;
}

/* Ottimizzazione per Mobile */
@media (max-width: 768px) {
  .partners-logo-flex {
    gap: 30px;
  }
  .partner-logo-item {
    max-width: 100px;
  }
}

/* Container principale */
.partners-grid-section {
  padding: 60px 0;
  background-color: #ffffff;
  width: 100%;
}

/* Colpiamo il wrapper automatico che Drupal crea per il campo field_partners_items */
.partners-grid-section .field--name-field-partners-items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center; /* Centra i loghi */
  align-items: center;
  gap: 40px 60px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Rimuoviamo eventuali margini dai div intermedi di Drupal */
.partners-grid-section .field__item {
  display: contents; /* Questo comando "annulla" il div intermedio per la flexbox */
}

/* Stile del singolo logo (il tuo paragraph figlio) */
.partner-logo-item {
  flex: 0 1 auto;
}

.partner-logo-item img {
  max-width: 180px; /* Dimensione massima per logo */
  height: auto;
  filter: grayscale(100%);
  opacity: 0.6;
  transition: all 0.3s ease;
}

.partner-logo-item:hover img {
  filter: grayscale(0%);
  opacity: 1;
}
/* Container della griglia */
.partners-logo-flex {
  display: flex;
  flex-direction: row; /* Forza l'allineamento orizzontale */
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 40px;
  width: 100%;
}

/* Neutralizza i wrapper automatici di Drupal che vedi nell'ispeziona elemento */
.partners-logo-flex .field__item,
.partners-logo-flex .field__items {
  display: contents;
}

/* Stile del singolo logo */
.partner-logo-item {
  display: inline-block;
  max-width: 180px;
}

.partner-logo-item img {
  width: 100%;
  height: auto;
  filter: grayscale(100%);
  opacity: 0.6;
}

/* Text services section */

.tax-services-section {
  padding: 0 0 80px 0;
  background-color: #ffffff;
  position: relative;
  overflow: hidden;
  font-family: "Josefin Sans", Sans-serif;
}

/* Header */
.tax-header {
  max-width: 500px;
  margin-bottom: 60px;
  position: relative;
  z-index: 2;
}

.tax-header .eyebrow {
  color: #5d6b8f;
  font-size: 14px;
  letter-spacing: 1px;
  font-weight: bold;
}

.tax-title {
  font-size: 36px;
  font-weight: 700;
  color: #f2a93e; /* Arancione */
  margin: 10px 0;
}

.tax-title .blue-highlight {
  background-color: #cbd4e1; /* Il quadratino azzurro dietro "Bisogno" */
  color: #43517a;
  padding: 0 5px;
}

.tax-description {
  color: #5d6b8f;
  line-height: 1.6;
}

/* Griglia Card */
.tax-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  position: relative;
  z-index: 2;
  margin-bottom: 50px;
}

.tax-card {
  background: #ffffff;
  display: flex;
  align-items: center;
  padding: 25px;
  border-radius: 50px; /* Molto arrotondati come da mockup */
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.tax-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);
}

.tax-card .icon {
  font-size: 24px;
  margin-right: 15px;
  color: #43517a;
}

.tax-card .text {
  color: #43517a;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.5px;
}

/* Bottone Arancione */
.tax-footer-cta {
  text-align: center;
  position: relative;
  z-index: 2;
}

.btn-orange-full {
  background-color: #f2a93e;
  color: #ffffff;
  padding: 18px 40px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: bold;
  font-size: 13px;
  display: inline-block;
}

/* Onda di Sfondo */
.bg-wave-decorative {
  position: absolute;
  top: 30%;
  left: 0;
  width: 100%;
  height: 400px;
  background-image: url('/sites/default/files/2026-03/bg-servizi.jpg');
  background-repeat: round;
  background-size: cover;
  z-index: 1;
  pointer-events: none;
}

/* Mobile */
@media (max-width: 992px) {
  .tax-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
  .tax-grid { grid-template-columns: 1fr; }
  .tax-header { text-align: center; margin: 0 auto 40px auto; }
}

/* footer */

.site-footer {
  background-color: #4B568F !important;
  color: #ffffff;
  padding: 60px 0 40px 0;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.site-footer a {
  color: #ffffff;
  text-decoration: none;
  transition: opacity 0.3s;
}

.site-footer a:hover {
  opacity: 0.8;
}

/* Colonna Logo */
.footer-logo {
  max-width: 200px;
  margin-bottom: 20px;
}
.footer-legal { font-weight: bold; font-size: 14px; margin-bottom: 5px; }
.footer-piva { font-size: 12px; opacity: 0.7; text-transform: uppercase; }

/* Social e Assistenza */
.footer-social {margin-bottom: 30px;}
.footer-social a { display: block; margin-bottom: 10px; font-size: 14px; }
.assistenza-box {
  border: 2px solid #fff;
  border-radius: 50px;
  padding: 10px 20px;
  display: inline-block;
  margin-top: 15px;
}
.assistenza-box .label { display: block; font-size: 10px; text-align: center; }
.assistenza-box .number { font-size: 20px; font-weight: bold; }

.assistenza-img { width: 115px;}

.footer-main .number {
        position: relative;
    left: -100px;
    top: 4px;
}

/* Menu */
.footer-menu { list-style: square; padding: 0; color: #f9a232; }
.footer-menu li { font-weight: bold; font-size: 14px; }
.footer-menu li a:hover { color: #f9a232;}

/* Quick Actions */
.quick-actions { list-style: none; padding: 0;  }
.quick-actions li { margin-bottom: 20px; display: flex; align-items: flex-start; gap: 10px; }
.quick-actions li a {color: #f9a232;}
.quick-actions i { color: #f2a93e; font-size: 1.2rem; }

/* Box Inferiore Scuro */
.footer-bottom-box {
  background-color: #3b4868; /* Blu più scuro */
  border-radius: 20px;
  padding: 30px;
  margin-top: 50px;
}

.footer-info-item {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 13px;
  line-height: 1.4;
}

.footer-info-item i {
  font-size: 24px;
  opacity: 0.8;
}

.footer-info-item strong {
  color: #f2a93e; /* Numeri di telefono in evidenza */
}

.page-node-8 .hero-home, .page-node-9 .hero-home {
    height: 100vh;
    display: flex;
    background-size: inherit;
    background-position: inherit;
    align-items: center;
    color: #fff;
    background-repeat: no-repeat;
}

/* ============================================
   NAMIRIAL CARDS - RESPONSIVE
   ============================================ */
 
@media (max-width: 768px) {
 
  /* Card bianche (SPID, Firme, PEC, ecc.) */
  .namirial-card-section {
    padding: 1rem 0;
  }
 
  .namirial-card {
    width: 100% !important;
    min-height: unset !important;
    border-radius: 0 !important;
    padding: 1.8rem 1.2rem;
    box-sizing: border-box;
  }
 
  .namirial-card--left,
  .namirial-card--right {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
 
  .namirial-card__title {
    font-size: 0.95rem;
  }
 
  .namirial-card__list li,
  .namirial-card__list--numbered li {
    font-size: 0.85rem;
  }
 
  .namirial-card__prose {
    font-size: 0.85rem;
  }
 
  /* CTA section con immagine blob */
  .services-cta-section .cta-flex-wrapper {
    flex-direction: column;
  }
 
  .services-cta-section .cta-image-container {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden;
  }
 
  .services-cta-section .cta-image-container img {
    width: 100% !important;
    height: auto !important;
    max-width: 100%;
    display: block;
  }
 
  .services-cta-section .cta-content {
    width: 100% !important;
    padding: 1.5rem 1rem;
    box-sizing: border-box;
  }
 
  /* Lista servizi verticale */
  .namirial-services-list-section {
    padding: 1.5rem 1rem;
  }
 
  .namirial-service-row {
    padding: 1rem 0;
  }
 
  .namirial-service-label__line1,
  .namirial-service-label__line2 {
    font-size: 0.85rem;
  }
 
}

/* ============================================
   NAMIRIAL LINKS - FORZA COLORE ARANCIONE
   ============================================ */
 
.namirial-card a,
.namirial-card a:link,
.namirial-card a:visited,
.namirial-card a:hover,
.namirial-card a:active,
.namirial-card .namirial-link,
.namirial-card__list li a,
.namirial-card__list--numbered li a,
.namirial-card__prose a,
.namirial-card__footer a,
.namirial-services-list-section a {
  color: #f5a623 !important;
  text-decoration: none !important;
}
 
.namirial-card a:hover,
.namirial-services-list-section a:hover {
  text-decoration: underline !important;
}


/* ============================================
   CONTRIBUENTI PAGE (node-9)
   Tipografia e stili dal PSD
   Font rilevati dal binario PSD:
   - YesevaOne-Regular  → titoli principali
   - JosefinSans (vari pesi) → body, label, UI
   ============================================ */

/* --- HERO --- */



/* --- RESPONSIVE --- */

@media (max-width: 768px) {
  .page-node-9 .hero-text-container .eyebrow        { font-size: 13px !important; }
  .page-node-9 .hero-text-container .main-heading   { font-size: 22px !important; }
  .page-node-9 .hero-text-container .description-text { font-size: 16px !important; }
  .page-node-9 .caf-info-title                      { font-size: 24px !important; }
  .page-node-9 .caf-info-text                       { font-size: 16px !important; }
  .page-node-9 .caf-info-cta-text                   { font-size: 15px !important; }
  .page-node-9 .modello730-title                    { font-size: 28px !important; }
  .page-node-9 .modello730-card__text               { font-size: 16px !important; }
  .page-node-9 .preparare-title                     { font-size: 24px !important; }
  .page-node-9 .preparare-intro                     { font-size: 16px !important; }
  .page-node-9 .accordion__label                    { font-size: 15px !important; }
  .page-node-9 .accordion__list li                  { font-size: 15px !important; }
  .page-node-9 .accordion__note                     { font-size: 15px !important; }
}

@media (max-width: 1024px) {
  header .navbar {
    margin-top: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  header .navbar-toggler {
    margin-top: -20px;
  }
}

@media (max-width: 1440px) and (min-width: 992px) {
  header .navbar {
    align-items: flex-start;
  }
  
  #navbar-main .nav-link {
    padding: 10px 8px !important;
    font-size: 13px;
  }
}

@media (max-width: 1440px) and (min-width: 992px) {
  #CollapsingNavbar .header-actions {
    margin-left: auto;
  }
}

#block-caf-socialandloginlinks {
    margin-left: auto;
}

@media (max-width: 1280px) and (min-width: 992px) {
  header .navbar {
    align-items: flex-start;
  }

  #navbar-main .navbar-brand img {
    width: 180px;
  }
  
    .path-frontpage #navbar-main .navbar-brand {
    margin-bottom: 0;
  }


  #navbar-main .nav-link {
    padding: 10px 6px !important;
    font-size: 12px;
  }

  .header-actions .social-btn {
    width: 32px;
    height: 32px;
    font-size: 13px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .header-actions .login-btn {
    padding: 6px 10px;
    font-size: 13px;
  }
}

/* Border-right arancione sui primi due footer-info-item (desktop) */
@media (min-width: 768px) {
  .footer-bottom-box .footer-info-item:not(:last-child) {
    border-right: 1px solid #f9a232;
  }
}

/* === FONT IMPORT === */
@import url('https://fonts.googleapis.com/css2?family=Josefin+Sans:wght@400;700&family=Yeseva+One&display=swap');

/* === EYEBROW === */
.testimonials-section .eyebrow {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 21px;
  font-weight: 400;
  color: #4b568f;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 12px;
}

/* === TITOLO H2 === */
.testimonials-section .testimonials-title {
  font-family: 'Yeseva One', serif;
  font-size: 30px;
  font-weight: 400;
  color: #4b568f;
  line-height: 1.25;
  margin: 0 0 32px;
}

.testimonials-section .testimonials-title .quote {
  /* virgolette decorative */
  font-family: 'Yeseva One', serif;
  color: #4b568f;
}

.testimonials-section .testimonials-title .orange-text {
  color: #f39200; /* arancione brand — adatta se il tono esatto è diverso */
}

/* === TITOLO TESTIMONIANZA === */
.testimonials-section .testimonial-text h3 {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: #4b4b4b;
  text-transform: uppercase;
  margin: 0 0 16px;
  letter-spacing: 0.02em;
}

/* === CORPO TESTIMONIANZA === */
.testimonials-section .testimonial-text p {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 19px;
  font-weight: 400;
  color: #7a7a7a;
  line-height: 1.55;
  margin: 0 0 20px;
}

/* === AUTORE === */
.testimonials-section .author-info strong {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: #4b4b4b;
}

.testimonials-section .author-info span {
  font-family: 'Josefin Sans', sans-serif;
  font-size: 16px;
  font-weight: 400;
  color: #7a7a7a;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* === NAVIGAZIONE FRECCE === */
.testimonials-section .nav-wrapper {
  display: flex;
  gap: 14px;
  margin-top: 24px;
}

.testimonials-section .swiper-button-prev-custom,
.testimonials-section .swiper-button-next-custom {
  width: 44px;
  height: 44px;
  border: 2px solid #f39200;
  border-radius: 50%;
  background: #fff;
  color: #f39200;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
  user-select: none;
}

.testimonials-section .swiper-button-prev-custom:hover,
.testimonials-section .swiper-button-next-custom:hover {
  background: #f39200;
  color: #fff;
}

/* Lo Swiper deve essere strettamente largo quanto il suo contenitore */
.testimonials-section .testimonialSwiper {
  overflow: hidden;
  /* NIENTE padding negativo, NIENTE margin negativo */
  padding: 0;
  margin: 0;
  width: 100%;
}

/* Ogni slide è larga 100% e non sborda */
.testimonials-section .swiper-slide {
  width: 100%;
  box-sizing: border-box;
  height: auto;
}

/* Layout interno della slide */
.testimonials-section .testimonial-item {
  display: flex;
  align-items: flex-start;
  gap: 32px;
}

.testimonials-section .author-img-main {
  flex: 0 0 auto;
  width: 140px;
  height: 140px;
  border-radius: 50%;
  overflow: hidden;
}

.testimonials-section .author-img-main img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 50%;
}

.testimonials-section .testimonial-text {
  flex: 1 1 auto;
  min-width: 0;
}

 @media (max-width: 1024px) {
    .testimonials-left {
      width: 100%;
      max-width: 100%;
      min-width: 0;
    }
  }
  .testimonials-section .testimonialSwiper {
    max-width: 100%;
    min-width: 0;
  }

 @media (max-width: 1024px) {
    .testimonials-section .testimonialSwiper .testimonial-item {
      flex-direction: column;
      align-items: center;
      text-align: center;
    }
  }
  @media (max-width: 991px) {
    #CollapsingNavbar {
      margin-left: 0; 
      padding: 20px;
      border-radius: 20px;
    } 
  } 
  
   @media (max-width: 767.98px) {
    .site-footer { padding: 48px 0 32px; }

    /* respiro orizzontale dal bordo schermo */
    .site-footer .container { padding-left: 24px; padding-right: 24px; }
  
    /* separazione verticale tra i 4 blocchi impilati */
    .site-footer .footer-col { margin-bottom: 32px; }
    .site-footer .footer-col:last-child { margin-bottom: 0; }

    /* menu: bullet quadrati non tagliati + voci spaziate */
    .site-footer .footer-menu { padding-left: 1.2em; margin-top: 8px; }
    .site-footer .footer-menu li { margin-bottom: 8px; }

    /* quick actions spaziate */
    .site-footer .quick-actions li { margin-bottom: 18px; }

    /* box scuro: testo a sinistra e voci spaziate */
    .site-footer .footer-bottom-box { margin-top: 16px; padding: 24px; }
    .site-footer .footer-bottom-box .footer-info-item { text-align: left; margin-bottom: 20px; }
    .site-footer .footer-bottom-box .footer-info-item:last-child { margin-bottom: 0; }
  }

 /* Pagine utente (login, registrazione, reimposta password): l'header è position:absolute,
     quindi va dato spazio in alto per non finirci sotto, e la form va incolonnata con margini */
  body.path-user main {
    padding-top: 175px;
    padding-bottom: 60px;
  }
  body.path-user #block-caf-content {
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
  @media (max-width: 991px) {
    body.path-user main { padding-top: 120px; }
  }

/* === LOCAL TASK (Visualizza/Modifica/Elimina/Revisioni) === */
  /* Desktop/tablet: barra verticale fissa a sinistra */
  body.user-logged-in nav.tabs {
    position: fixed;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: auto;
    margin: 0; padding: 0;
    z-index: 96;
    background: transparent;
  }
  body.user-logged-in nav.tabs .nav.primary,
  body.user-logged-in nav.tabs ul.nav-tabs {
    flex-direction: column; flex-wrap: nowrap;
    border: 0; margin: 0; padding: 0; gap: 4px; background: transparent;
  }
  body.user-logged-in nav.tabs .nav-item { width: 100%; margin: 0; }
  body.user-logged-in nav.tabs .nav-link {
    display: block; background: #4b568f; color: #fff; border: 0;
    border-radius: 0 8px 8px 0; padding: 10px 16px;
    font-size: 13px; font-weight: 700; white-space: nowrap; line-height: 1.1;
    box-shadow: 0 2px 8px rgba(0,0,0,.18);
    transition: background .2s, padding .2s;
  }
  body.user-logged-in nav.tabs .nav-link:hover,
  body.user-logged-in nav.tabs .nav-link.active {
    background: #f9a232; color: #fff; padding-left: 22px;
  }

  /* Mobile: barra orizzontale fissa in basso (action bar) */
  @media (max-width: 767.98px) {
    body.user-logged-in nav.tabs {
      top: auto; bottom: 0; left: 0; right: 0; transform: none; width: 100%;
    }
    body.user-logged-in nav.tabs .nav.primary,
    body.user-logged-in nav.tabs ul.nav-tabs {
      flex-direction: row; justify-content: stretch; gap: 0;
      background: #4b568f; box-shadow: 0 -2px 10px rgba(0,0,0,.25);
    }
    body.user-logged-in nav.tabs .nav-item { flex: 1 1 0; width: auto; }
    body.user-logged-in nav.tabs .nav-link {
      border-radius: 0; text-align: center; padding: 11px 4px; font-size: 11px;
      box-shadow: none; border-right: 1px solid rgba(255,255,255,.15);
    }
    body.user-logged-in nav.tabs .nav-item:last-child .nav-link { border-right: 0; }
    body.user-logged-in nav.tabs .nav-link:hover,
    body.user-logged-in nav.tabs .nav-link.active { padding-left: 4px; }
  }
  
  
  
  
  /* =========================================================
     FIX COERENZA FONT - 2026-05-28
     Allinea le dimensioni dei testi sulle pagine servizi CAF
     e su /per-il-professionista al resto del sito (base 16px).
     Necessari !important per battere gli <style> inline nei
     paragraph raw_html dei nodi.
     ========================================================= */

  /* 1) PAGINA /per-il-professionista
        Era: H2 25.6px, P 15.2px, label 12px, tool-name 11.2px */
  .pip-section .pip-col-text h2,
  .pip-hero-text h2 {
    font-size: 2rem !important;        /* 32px - come gli altri H2 */
    line-height: 1.25 !important;
    font-weight: 700 !important;
  }
  .pip-section .pip-col-text p,
  .pip-section .pip-col-text li,
  .pip-section .pip-tool-item p,
  .pip-hero-text p {
    font-size: 1.0625rem !important;   /* 17px - coerente con il body */
    line-height: 1.7 !important;
  }
  .pip-section .pip-col-text .pip-label,
  .pip-hero-text .pip-label {
    font-size: 0.875rem !important;    /* 14px invece di 12px */
    letter-spacing: 2px !important;
  }
  .pip-section .pip-tool-item .tool-name {
    font-size: 1rem !important;        /* 16px invece di 11.2px */
    letter-spacing: 1px !important;
  }

  /* 2) NODI SERVIZIO CAF (730, IMU, successione, colf, ADI,
        delega-digitale, contratto-di-locazione)
        Tutti i corpi testo descrittivi a 16-17px */
  .caf-info-text,
  .caf-info-cta-text,
  .modello730-card__text, .modello730-card__subtitle,
  .imu-card__text, .imu-card__subtitle,
  .successione-card__text, .successione-card__subtitle,
  .colf-card__text, .colf-card__subtitle,
  .adi-card__text, .adi-card__subtitle,
  .delega-card__text, .delega-card__subtitle,
  .locazione-card__text, .locazione-card__subtitle,
  .locazione-text, .locazione-text p, .locazione-text li {
    font-size: 1.0625rem !important;   /* 17px */
    line-height: 1.7 !important;
  }

  /* Etichetta "COSA POSSIAMO FARE PER TE" - era 13.12px */
  .modello730-card__label,
  .imu-card__label,
  .successione-card__label,
  .colf-card__label,
  .adi-card__label,
  .delega-card__label,
  .locazione-card__label {
    font-size: 0.9375rem !important;   /* 15px - resta eyebrow ma più leggibile */
    letter-spacing: 1.5px !important;
  }

  /* 3) H2 "Ecco cosa preparare" - era 28.8px, gli altri H2 sono 32px */
  .preparare-title {
    font-size: 2rem !important;        /* 32px */
    line-height: 1.25 !important;
  }

  /* 4) ACCORDION "Ecco cosa preparare" su 730 e ADI
        La voce cliccabile era 15.2px/600, troppo piccola */
  .accordion__label {
    font-size: 1.0625rem !important;   /* 17px */
    font-weight: 700 !important;
    line-height: 1.45 !important;
  }
  .accordion__number {
    font-size: 1rem !important;        /* 16px */
    font-weight: 700 !important;
  }
  .accordion__list,
  .accordion__body,
  .accordion__body li,
  .accordion__body p {
    font-size: 1rem !important;        /* 16px */
    line-height: 1.65 !important;
  }

  /* 5) RESPONSIVE: su mobile riduci proporzionalmente
        così non sfora i contenitori delle card */
  @media (max-width: 768px) {
    .pip-section .pip-col-text h2,
    .pip-hero-text h2,
    .pip-section .pip-col-text h2,
    .pip-hero-text h2,
    .preparare-title {
      font-size: 1.6rem !important;    /* ~26px */
    }
    .pip-section .pip-col-text p,
    .pip-section .pip-col-text li,
    .pip-section .pip-tool-item p,
    .pip-hero-text p,
    .caf-info-text,
    .caf-info-cta-text,
    [class$="-card__text"],
    [class$="-card__subtitle"],
    .locazione-text,
    .locazione-text p,
    .locazione-text li {
      font-size: 1rem !important;      /* 16px */
    }
    .accordion__label { font-size: 1rem !important; }
  }

/* PATCH 2: liste puntate dentro le card servizi CAF
     (i <li> in .{slug}-list erano rimasti a 14.4px) */
/* a) Paragrafo introduttivo "Di seguito un elenco dettagliato..." 
        su /modello-7302026 e /assegno-di-inclusione: era 14.4px */
  .preparare-intro {
    font-size: 1.0625rem !important;   /* 17px */
    line-height: 1.7 !important;
  }
  
  /* b) Liste puntate <li> dentro le card servizi
        (i <li> in .{slug}-list erano rimasti a 14.4px) */
  .modello730-list, .modello730-list li,
  .locazione-list,  .locazione-list li,
  .imu-list,        .imu-list li,
  .successione-list,.successione-list li,
  .colf-list,       .colf-list li,
  .adi-list,        .adi-list li,
  .delega-list,     .delega-list li,
  .modello730-card ul, .modello730-card ol,
  .locazione-card ul,  .locazione-card ol,
  .imu-card ul,        .imu-card ol,
  .successione-card ul,.successione-card ol,
  .colf-card ul,       .colf-card ol,
  .adi-card ul,        .adi-card ol,
  .delega-card ul,     .delega-card ol {
    font-size: 1.0625rem !important;   /* 17px - coerente col body */
    line-height: 1.7 !important;
  }
  
  @media (max-width: 768px) {
    .preparare-intro,
    .modello730-list li, .locazione-list li, .imu-list li,
    .successione-list li, .colf-list li, .adi-list li,
    .delega-list li {
      font-size: 1rem !important;      /* 16px su mobile */
    }
  }
  
  
   /* ===== Uniformamento hover pulsanti CTA ===== */

  .partner-cta .btn-blue {
    transition: background-color 0.3s ease, transform 0.3s ease;
  }
  .partner-cta .btn-blue:hover {
    background-color: #f9a232 !important;   /* blu → arancione */
    color: #ffffff !important;
    transform: scale(1.05) !important;
  }

  .btn-orange {
    transition: transform 0.3s ease, background-color 0.3s ease;
  }
  .btn-orange:hover {
    background-color: #4b568f !important;   /* arancione → blu */
    color: #ffffff !important;
    transform: scale(1.05) !important;
  }

  .btn-orange-full:hover {
    background-color: #4b568f !important;   /* arancione → blu */
    color: #ffffff !important;
    transform: scale(1.05) !important;
  }
